同一个对象,在不同时刻表现出来的不同形态
举例:猫
我们可以说猫是猫:猫cat = new猫();
我们也可以说猫是动物:动物animal = new猫();
这里猫在不同的时刻表现出来了不同的形态,这就是多态
继承
重写
父类引用指向子类对象:Parent p = new Child();

成员变量: 编译看左边,执行看左边 成员方法: 编译看左边,执行看右边 静态方法:编译和运行都看等号左边
为什么成员变量和成员方法的访问不- -样呢?
因为成员方法有重写, 而成员变量没有
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处: 提高了程序的扩展性
具体体现:定方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
多态的弊端: 不能使用子类的特有功能
解决了多态的弊端
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象