java学习之多态(转型、特点)
多态:可以理解为事物存在的多种体现形态
1.多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2.多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3.多态的好处
多态的出现大大的提高程序员的扩展性
4.多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员
5.多态的应用
6.多态的出现代码中的特点(多态使用的注意事项)
在多态中成员函数(指非静态成员函数)的特点:
在编译时期:参阅引用型变量所属的类中是否有调用方法。如果有,编译通过如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法
总结:a.成员函数在多态调用时,编译看左边,运行看右边
b.在多态中,成员变量的特点:
无论编译还是运行,都参考左边(引用型变量所属的类)
c. 在多态中,静态成员函数的特点:
无论编译还是运行,都参考左边
转型:
类型提升,向上转型。强制将父亲的引用,转成子类类型,向下转型。
注意:最好不要将父类对象转成子类类型,能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。
规律:多态自始至终都是子类对象在做着变化。