多态是Java面向对象中三大特性之一
多态的定义:同一件事放在不同的对象上面会有不同的结果
多态的条件
1.继承关系
2.子类要重新父类的方法
3.父类的引用指向子类的对象
多态的转型分为向上转型和向下转型
多态的向上转型
语法格式
父类 父类的引用 = new 子类();
1.向上转型是自动的,将子类的对象赋值给父类的引用
2.小范围(子类)转为大范围(父类)的转换是可以自动转换的
3.父类的引用可以调用父类的所有方法,但不能调用子类多有的方法
4.最终的调用结果看的是子类中重写的方法
多态的向下转型
语法格式
父类 父类的引用 = new 子类()
子类 子类的引用 = (子类)父类的引用
注意,如果想要多态向下转型,首先就需要先向上转型,然后再向下转型
个人理解:
子类调用 向上转型后父类引用(向上转型后的父类强行赋值给子类,然后子类在调用)