Java学习第三篇——多态
2014-06-13 本文已影响0人
eesly_yuan
多态——只要不是后期绑定,就不是多态
绑定
- 定义:建立函数调用(method calling)和函数本体(method body)之间的关联
- 程序执行前绑定——先期绑定(编译期绑定)
- 执行期判定对象类别,进行相应的绑定——后期绑定(动态绑定)
- java所有函数除了声明为final的,其余皆用后期绑定,导出final的两个关键作用1、防止覆写;2、关闭动态绑定
覆写vs重载
- 重载,函数名称一致,形参不同,不是多态调用
- 覆写,派生类实现或者重新实现函数
抽象类和抽象函数
- 含有abstract method的class称之为abstract class抽象类
构造函数和多态
- 构造函数调用顺序
1、调用base class 的构造函数,递归到root上,然后依次向下调用derived class,直至最末为止。
2、根据成员声明顺序,设置初值
3、调用derived class 构造函数本体
继承和finalize()
- 在derived class 中覆写finalize()时,需要调用base class 的 finalize(),调用顺序和构造时候相反。
多态方法在构造函数中的行为
- 构造函数中调用动态绑定的某个函数,会唤起该函数被覆写的定义。
- 实际初始化过程
1、所有事之前,分配给该对象的存储空间会被初始化为二进制的0
2、以前面的方式调用构造函数
- 构造函数中唯一可以安全调用的函数是base class 中的final函数