1:多态:不管导出类的存在,编写的代码至于基类打交道。这样的程序是可以扩展的,因为从通用的基类继承出来的新的数据类型,从而添加一些功能。那些操纵基类接口的方法不需要任何改动就可以应用于新类。
2:后期绑定(oop的编译器):因为在oop中,当向对象发送消息时,被调用的代码直到运行时才确定。编译器确保被调用方法存在,并对调用参数和返回值执行类型检查(无法提供此类保障的称为弱类型的)。为了执行后期绑定。Java使用一小段特殊的代码来替代绝对地址的调用。这段代码使用在对象中存储的信息来计算方法体的地址。根据这一小段代码的内容,每一个对象都可以有不同的行为。
3:缺陷:无法“覆盖”私有方法。访问域和静态方法不具有多态性。
4:对象初始化的实际过程:
4.1:在其他任何事物发生前,将分配给对象的存储空间初始化为二进制的零。
4.2:调用基类构造器
4.3:按照顺序调用成员的初始化方法
4.4:调用导出类构造器主体。
5:编写构造器的一条有效准则:用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他方法。在构造器中,唯一安全的方法是基类的final方法。
6:
Car car = new Volvo();
导出类中接口的扩展部分不能被基类访问,因此,一旦向上转型,就不能调用那些新方法。