多态:同一对象在不同时刻体现出的不同状态
前提:A.必须存在继承关系
B.存在方法重写(不写就没意义了)
C.父类要指向子类的引用
多态成员访问的特点
1.成员变量 编译看左边 运行看右边
2.成员方法 编译看左边 运行看右边
3.静态方法 编译看左边 运行看左边
多态的好处
提高了代码的维护性;
提高了代码的扩展性
多态的弊端
不能使用子类特有的功能
怎么用呢?
a.直接创建子类的对象,然后调用方法就可以了(可以,但是不合理 完全脱离 多态的需求)
b.把父类对象的引用强制转换成子类对象的引用(向下转型/向下造型)
对象之间的转型的问题:
向上转型:
Fu f = new Zi();
向下转型:
Zi zi = (Zi)f;