多态的好处和弊端
多态的好处
可维护性
基于继承关系,只需要维护父类代码,提高了代码的复用性,大大降低了维护程序的工作量
为什么要学习多态
从程序的模块化和复用性来解释
- 封装:隐藏数据的实现细节,让数据的操作模块化,提高代码复用性
- 继承:复用方法,从对象的行为这个层面,提高代码的复用性
- 多态:复用对象,程序运行时同一个对象表现出不同的行为
可扩展性
把不同的子类对象都当作父类看待,屏蔽了不同子类对象间的差异,做出通用的代码,以适应不同的需求,实现了向后兼容
多态的弊端
不能使用子类特有成员
解决办法
向下转型
(前提:必须准确知道该父类引用指向的子类类型)
类型转换
当需要使用子类特有功能时,需要进行类型转换