抽象类 VS 接口
抽象类注重其是什么以及其本质
接口注重具有什么样的功能以及充当什么角色
抽象类使用abstract关键字来声明,接口使用interface关键字来声明
抽象类和接口都不能实例化,不能通过new来创建对象
抽象类的成员变量没有任何限制
接口中的成员变量都是public static final
抽象类的方法可以包含抽象方法和具体方法
接口中的方法都是public abstract,只有声明没有实现
抽象类可以继承类和实现接口
接口只能实现接口
抽象类要点
一个类具有抽象方法,这个类一定是一个抽象类
子类(非抽象类)继承父类(是抽象类)的时候,那么子类必须实现父类的所有抽象方法
子类(是抽象类)继承父类(是抽象类)的时候,那么子类可以不实现父类的抽象方法
接口 VS 继承
基于接口的多态要比基于继承的多态灵活的多
继承只能让超类引用指向其本身以及子类对象
接口引用则能指向任何类型的对象,即使没有任何关系