抽象类生来就是当爹的
只记:
抽象类就是 可以存在抽象方法的爹(其他和继承父类都一样,属性什么的也都一样)
抽象类就是 可以存在抽象方法的爹,高高在上:
抽象方法
注意
1.非抽象方法继承抽象类的抽象方法,必须要重写!【非抽象类怎么能有抽象方法呢?】
2.也可以使用多态: 面向抽象编程
3.
接口:解耦合
只记:
- 接口是只有公开的 常量 和 抽象方法 的完全抽象类(没有变量什么的,所以,public static final 和 public abstract 可以省略)
- 接口可以多继承 ------> 接口没有构造方法(super()找哪个嘞?)
interface C extends A,B{//A,B都是接口
}
接口编译后也是个.class文件!
implements实现接口
实现类必须重写接口中的所有方法!【接口实际是统一了一种功能的全部方法】
记得要还原接口中省略的public…,因为只有接口能省略。
接口实现就是个继承,同样可以使用多态: 面向接口编程
java类中虽然只能单继承,但能实现多接口:
了解:
@FunctionalInterface(eg: interface Comparator< T >)
- 一个函数式接口有且只有一个抽象方法。
- 默认方法不是抽象方法,因为它们已经实现了。
- 重写了超类Object类中任意一个public方法的方法并不算接口中的抽象方法。