父类的类型 变量 = 子类的对象;
//变形形式1
父类的类型的元素 = 子类的对象;
//变形形式2
父类的类型的形参 被赋予 子类的对象
2、多态的前提
(1)继承
(2)多态引用
(3)重写
3、多态的表现
(1)编译时按照父类编译,运行时按照子类处理。
(2)只能调用父类拥有的方法,不能调用子类特有的扩展的方法
(3)如果调用父类拥有的方法时,执行的时候是执行子类“重写”的方法。
4、多态的应用
(1)多态的数组
父类类型[] arr = new 父类类型[长度];
arr[i] = 子类的对象;
数组的元素类型是父类的,实际存储的是子类的对象;
(2)多态的参数
【修饰符】 返回值类型 方法名(父类的类型 形参名)
形参是父类的类型,调用方法时传入的实参是子类的对象
5、面向对象的3个基本特征:
(1)封装:安全、方便
(2)继承:代码的复用和扩展
(3)多态:使得功能更灵活,可以使用父类类型的变量可以统一管理它的子类对象们
6、关于面试题的陷阱:
(1)属性
(2)静态方法
没有多态性,只看编译时类型。