抽象类
- 抽象类和抽象方法必须用abstract修饰
- 抽象类不能被实例化
- 抽象类有默认构造方法
- 有抽象方法毕为抽象类,抽象类不一定有抽象方法。
- 子类一定要实现所继承抽象类的抽象方法
- 成员变量不能被抽象。
- abstract不能跟static共存,因为被static修饰的方法是可以被类名调用的,而abstract方法是不允许被调用的
- final不能跟static共存,因为final修饰的方法是不让被继承的,而abstract修饰的方法是需要被子类继承的。
- private 不能跟static共存,因为private修饰的成员变量,成员方法是不会被继承的,而abstract修饰的方法是需要被子类继承的。
接口
狭义上是指java的interface,广义上所有提供规则的都是接口
- 接口里面没有构造方法,接口里面的成员方法必须是抽象的。
- 接口中的成员变量是的默认修饰符是public static final,可以自己设定。
- 类实现接口用implement
- 接口不能实例化
- 实现的接口必须重写所有接口的方法
- 接口对外是暴露的。
接口与抽象类
抽象类是单继承,is 的关系
接口是多实现,like 的关系