think_in_java_多态

向上转型:对象既可以作为它自己本身的类型使用,也可以作为它的基类型使用。
绑定:将一个方法调用同一个方法主体关联起来被称作绑定。若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。后期绑定:在运行时根据对象的类型进行绑定【动态绑定或运行时绑定】java除了static方法和final方法之外,其他所有方法都是后期绑定。

多态是一项让程序员“将改变的事物与未来的事物分离开来”的重要技术。
对象方法若是静态的,则不具备多态性。
当子类对象转型为父类引用时(Father fa=new Son();//upcast),任何域访问操作都将由编译器解析,故不是多态的。

基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用。因为构造器具有一项特殊任务:检查对象是否被正确地构造。导出类只能访问自己的成员,不能访问基类成员(private)

一个复杂对象调用构造器要遵守下面的顺序:
①调用基类构造器,这个步骤反复递归,首先是构造这种层次结构的根,然后是下一层导出类,直到最低层的导出类。
②按声明顺序调用成员的初始化方法。
③调用导出来构造器的主体。

当覆盖被继承类的dispose()方法时,务必记住调用基类版本dispose()方法;否则,基类的清理动作不会发生(被多态了)。

初始化的实际过程:
①在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的零。
②调用基类构造器,调用被覆盖后的方法。
③按照声明的顺序调用成员的初始化方法。
④调用导出类的构造主体。
优点:所有东西的初始化为0(或者时某些特殊数据类型中与零等价的值)

协变返回类型:表示在导出类中的覆盖方法可以返回基类方法的返回类型。

posted @ 2017-04-11 18:42  天气晚来秋  阅读(121)  评论(0编辑  收藏  举报