面向对象:抽象、封装、继承、多态

8.1 再论向上转型

8.1.1 忘记对象类型

8.2 转机

8.2.1 方法调用绑定

将一个方法调用同一个方法主体关联起来被称作 绑定。
前期绑定
后期绑定,动态绑定,运行时绑定

8.2.2 产生正确的行为

8.2.3 可扩展性

“多态是一项让程序员‘将改变的事物与未变的事物分离开来’的重要技术”

8.2.4 缺陷:“覆盖”私有方法

只有非 private 方法才可以被覆盖;

8.2.5 缺陷:域与静态方法

8.3 构造器与多态

8.3.1 构造器的调用顺序

8.3.2 继承与清理

8.3.3 构造器内部的多态方法的行为

用尽可能简单的方法使对象进入正常状态;如果可以的话,避免调用其它方法;

8.4 协变返回类型

在导出类中的被覆盖方法可以返回基类方法的返回类型的某种导出类型;

8.5 用继承进行设计

8.5.1 纯继承与扩展

8.5.2 向下转型与运行时类型识别

8.6 总结

更快的程序开发过程
更好的代码组织
更好扩展的程序
更容易的代码维护