多态:可以理解为事物存在的多种体现形态。比如
人:男人、女人;
动物:猫、狗;
猫 x = new 猫();
动物 x = new 猫();类型提升,向上转型.
学习过程:
1,多态的体现:
父类的引用指向自己的子类对象
父类的引用也可以接收自己的子类对象
2,多态的前提:
必须是类与类之间有关系.要么继承要么实现.
通常还有一个前提:存在覆盖.
3,多态的好处:
多态的出现大大的提高了程序的扩展性.
4,多态的应用。
若想要子类的特有方法,使用向下转型:强制将父类的引用,转换成子类类型.
//千万不要将父类对象转成子类类型.我们能转换的是父类应用指向了
//自己的子类对象时,该应用可以被提升,也可以被强制转换.
//多态自始自终都是子类对象在做变化.
在多态中'非静态'成员函数的特点:
编译时期:参阅引用型变量所属的类是否有调用方法;如果有,则通过,没有则编译失败.
在运行时期:参阅对象所属的类中是否有调用方法.
简单总结:成员函数在多态调用时,编译看左边,运行看右边.
涉及面试:
在多态中成员变量的特点:输出重名变量时,无论是编译还是运行都参考左边.
在多态中静态成员函数特点:无论编译还是运行都参考左边. |
|