1.概述
extends继承或implements实现,是多态性的前提
一个对象拥有多种形态就是对象的多态性
2.格式与使用
【1】父类引用指向子类对象
【2】格式:
父类名称 对象名 = new 子类名称(); 接口名称 对象名 = new 实现类名称(); Fu obj = new Zi(); obj.method();
3.多态中成员变量的使用特点
【1】和继承没有区别
【2】访问有两种方式:
A. 直接:通过对象名称访问成员变量:
等号左边是谁就优先用谁,没有则向上找(创建对象时的左边)
到处都没有时,编译报错
B.间接:通过成员方法访问成员变量 :
看方法属于谁就优先用谁,没有则向上找
子类没覆盖重写就是子
子类覆盖重写就是父
【3】编译看左边,运行还看左边
4.多态中成员方法的使用特点
【1】看new的是谁就优先用谁,没有则向上找
【2】编译看左边,运行看右边
编译看左边:左边是Fu,Fu当中没有methodZi方法,编译报错
5.多态的好处

6.对象的向上转型
【1】向上转型,就是对象的写法
【2】格式
父类名称 对象名 = new 子类名称();
【3】含义:右侧创建了一个子类对象,把它当作父类来看待
TIPS:
向上转型一定是安全的:从小范围转向大范围
7.对象的向下转型
【1】向上转型的弊端:
无法调用子类原本特有的方法
【2】解决方案:用对象的向下转型【还原的动作】
【3】格式:
子类名称 对象名 = (子类名称)父类对象;
【4】含义:将父类对象,还原成本来的子类对象
TIPS:
【1】保证对象创建的时候是什么,向下转型才能还原成什么
【2】如果对象创建时候是另一类,向下转型成这一类就会报错(ClassCastException)
8.Instanceof
【1】如何知道父类引用的对象是什么子类
【2】格式
对象 instanceof 类型
【说明】:
本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!