《java编程思想》多态与接口
向上转型 定义:把某个对象的引用视为对其基类类型的引用的做法被称为向上转型 方法调用绑定 将一个方法调用同一个方法主体关联起来被称作绑定。 前期绑定:程序执行前进行的绑定叫做前期绑定,前期绑定也是java中默认的绑定方式 后期绑定(动态绑定或运行时绑定):在运行时根据对象的类型进行绑定。在java中除了static方法和final方法之外,其他所有的方法都是后期绑定,也就是说,通常情况下,我们不用判断是否应该进行后期绑定,它会自动发生。 构造器和多态 构造器调用顺序: (1) 调用基类构造器,此步骤会不断反复递归下去,首先是构造这种层次结构的根,然后是下一层导出类,一直到最低层的导出类 (2) 按声明顺序调用成员的初始化方法。 (3) 调用导出类构造器的主体 父类(静态变量、静态初始化块)>子类(静态变量、静态初始化块)> 父类(变量、初始化块)>父类构造器>子类(变量、初始化块)>子类构造器。(变量和初始化块按定义顺序初始化) 构造器内部的多态方法的行为 构造器调用的层次结构带来一个有趣的两难问题,如果在一个构造器的内部调用正在构造的对象的某个动态绑定方法,会发生什么情况呢?众所周知,在一般的方法内部,动态绑定的调用是在运行时才决定的,因为对象无法知道它是属于方法所在的类,还是属于那个类的导出类