第五章 继承,接口和抽象类
第一节 继承
父类/基类/超类
子类/派生类
子类会继承父类的所有东西,除了private。
单根继承原则:每个类只能继承一个类。默认继承Object类。
第二节 抽象类和接口
1. 抽象类
如果一个类有方法未实现,则为抽象类。
子类继承于抽象类,需要实现父类的所有abstract方法,否则子类也是abstract类。
2. 接口
如果一个类的所有方法都没有实现,则是interface接口类。
类可以implements多个interface。
a. 抽象类abstract,接口interface。
b. 抽象类可以有部分方法实现,接口类所有方法不能实现。
c. 一个类只能继承一个(抽象)类,实现多个接口。
第三节 转型,多态和契约设计
1. 类转型
子类可以转换成父类,从父类转化为子类则不允许。
只有一种情况是例外,就是这个父类就是从子类转化过来的。
2. 多态
类型转换,带来的作用就是多态。
子类继承父类的所有方法,但子类可以重新定义一个名字,参数和父类一样的方法,这种行为就是重写 (overwrite, not overload)。
子类的方法的优先级高于父类。
多态的作用:
a. 以统一的接口来操纵某一类中不同的对象的动态行为。
b. 对象之间的解藕。
3. 契约设计
契约规范了对象应该包含的行为方法。
接口定义了方法的名称,参数和返回值,规范了派生类的行为。