多态的前提条件
- 有继承/实现关系
- 有方法的重写
- 有父类引用指向子类对象
多态中成员的访问特点
- 成员变量:编译看左边,运行也看左边
- 成员方法:编译看左边,运行看右边
为什么成员方法会不一样呢?
因为成员方法有重写,而成员变量没有
例如:
Animal a=new Cat();
左边是父类Animal
右边是子类Cat
多态的好处与弊端
-
多态的好处:提高了程序的拓展性(定义方法的时候使用父类型作为参数,将来使用的时候,使用具体子类型参与操作)
-
多态的弊端:不能使用子类的特有功能