Java基础04 接口与抽象类

  • 什么是抽象类?为什么要抽象类?
    本质就是抽象,对应到客观世界就是对事物的抽象描述;我的马哲老师问过我们,“什么是桌子?”,哈哈,其实我们都说不好,我们可以说买一张桌子,但是真正买的时候买的应该是圆桌、方桌…这说明桌子没有具体的实现,而圆桌有具体的实现,这也蕴含了多态的思想(其实圆桌也可以是一个抽象的概念,这就看我们如何设计了)
  • 抽象类
    • 用abstract声明,有抽象方法的类一定是抽象类,抽象类不一定有抽象方法(也许我们就是希望一个类不可以被实例化)
    • 抽象类可以拥有普通类所拥有的所有结构
    • 抽象类的存在就是为了被继承,所以一定需要构造方法来被子类显式调用
    • 子类需要重写抽象类的所有抽象方法才能保证自己不是抽象类
    • 我们前边讲过static方法不能被重写,所以也就不能声明抽象的static方法

  • 什么是接口?为什么要接口?
    接口的名字就很形象,实现了一个接口,就是提供了某种功能;提供了USB接口,就是提供了USB传输的功能,提供了电源接口,就是提供了充电的功能…
  • 接口
    • 用interface声明,一般就是提供几个抽象函数
    • Java中的接口可以有什么结构呢?
      • 属性:默认也只能是public static final(毕竟我们不想要接口结构过于复杂)
      • 方法:默认是public abstract方法,可以定义public static,default方法
    • 接口不可以有也不需要构造方法,毕竟属性都是final的
  • 函数式接口与lambda表达式
    • 函数式接口——只有一个抽象方法的接口
    • 很多情况下某个函数需要的参数是实现了某个函数式接口的类的对象,这个函数也只想要去调用那个对象重写的方法
      • 之前使用匿名内部类
      • lambda表达式:传递代码段,简洁构造函数式接口对象

——————————————————————————————————————————————————–

西瓜要挖着吃

一个通往大佬之路的男人

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注