抽象的特点
抽象类的初衷是“抽象”,即规定这个类“是什么”,具体的实现暂不确定,是不完整的,因此不允许直接创建实例。
抽象类是由子类具有相同的一类特征抽象而来,也可以说是其基类或者父类
抽象方法必须为 public 或者 protected(因为如果为 private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为 public
抽象类不能用来创建对象
抽象方法必须由子类来实现
如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法,如果子类没有实现父类的抽象方法,则必须将子类也定义为抽象类
抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承层次结构向上移动
多态:
相同行为,不同实现
多态就是指一个对象有多种形式的能力,一个类的子类可以定义他们唯一的行为,同时共享父类的某西相同特征。
接口的实现
关键字:implements
实现接口,必须重写来自接口的所有抽象方法
实现接口,没有重写来自接口的所有的方法,那么该类只能是抽象类;
接口可以多实现;类有多个接口
接口的引用可以指向实现类的对象
接口继承
接口可以继承接口
接口可以做多继承(中间用逗号隔开)
接口隔离原则,尽量定义小接口
抽象类和接口的区别
抽象:与身俱来的行为和属性
接口:附属添加的行为和属性(尽量定义小接口)