多态---简单
1:作用
? ? ? ? 可以消除类型之间的耦合关系。
2:动态绑定(即多态)
? ? ? ? 在运行期才知道对象的类型(或才知道调用的是哪个对象的方法)
? ? ? ? 在java中除了static和final(private 也是final的)之外,都是动态绑定
?3:缺点:
? ? ? ? ?1):父类与子类有同名方法,但父类方法为private的,把子类对象赋值给父类字段,调用同名方法是父类的方法(private方法不能被重载)
? ? ? ? ?2):多态不会发生在private,域,静态方法中
4:构造方法和多态
? ? ? ?构造方法并不具有多态性(构造方法是static)
? ? ? ?构造方法的初始化顺序(有了多态之后)
? ? ? ? ? ? ?1):基类的构造器初始化(返复递归直到最底层的基本构造器)
? ? ? ? ? ? ?2):成员字段的构造器(用来确保字段都可以被正确的初始化)
? ? ? ? ? ? ?3):自己的构造器?
? ? ? ? 继承与清理的顺序
? ? ? ? ? ? ?子类的清理方法中最后一行一定要调用父类的清理方法(否则父类的清理方法将永远不被调用)
? ? ? ? ? ?
对于字段:销毁的顺序与声明的顺序相反对于基类:销毁的顺序先子类后父类
?
问题?子类构造器初始化时,先调用父类构造器,父类构造器中调用了被覆盖的方法,此时这个方法是子类中的方法?5:协变返回值类型
? ? ? 子类中被覆盖的方法,可以返回基类方法返回值的子类型?
?