读书人

多态-简单

发布时间: 2013-11-11 14:02:17 作者: rapoo

多态---简单

1:作用

? ? ? ? 可以消除类型之间的耦合关系。

2:动态绑定(即多态)

? ? ? ? 在运行期才知道对象的类型(或才知道调用的是哪个对象的方法)

? ? ? ? 在java中除了static和final(private 也是final的)之外,都是动态绑定

?3:缺点:

? ? ? ? ?1):父类与子类有同名方法,但父类方法为private的,把子类对象赋值给父类字段,调用同名方法是父类的方法(private方法不能被重载)

? ? ? ? ?2):多态不会发生在private,域,静态方法中

4:构造方法和多态

? ? ? ?构造方法并不具有多态性(构造方法是static)

? ? ? ?构造方法的初始化顺序(有了多态之后)

? ? ? ? ? ? ?1):基类的构造器初始化(返复递归直到最底层的基本构造器)

? ? ? ? ? ? ?2):成员字段的构造器(用来确保字段都可以被正确的初始化)

? ? ? ? ? ? ?3):自己的构造器?

? ? ? ? 继承与清理的顺序

? ? ? ? ? ? ?子类的清理方法中最后一行一定要调用父类的清理方法(否则父类的清理方法将永远不被调用)

? ? ? ? ? ?

对于字段:销毁的顺序与声明的顺序相反
对于基类:销毁的顺序先子类后父类

?

问题?子类构造器初始化时,先调用父类构造器,父类构造器中调用了被覆盖的方法,此时这个方法是子类中的方法

?5:协变返回值类型

? ? ? 子类中被覆盖的方法,可以返回基类方法返回值的子类型?

?

读书人网 >编程

热点推荐