多态
* 概述: 就是同一个事物在不同时刻表现出来的不同状态
* 前提
** 需要有继承关系
** 需要有方法重写,其实没有方法重写也是可以的,但是没有意义
** 需要有父类的引用指向子类对象
举例: Fu f = new Zi() ;
* 多态中成员访问的特点:
** 成员变量 编译看左边 , 运行看左边
** 构造方法 子类在初始化的时候都需要默认的访问父类无参的构造方法对父类的数据进行初始化
** 成员方法
** 静态成员方法 编译看左边 , 运行看左边
** 非静态的成员方法 编译看左边 , 运行看右边
* 多态的好处
** 提高了代码的维护性
** 提高了代码的扩展性
* 多态的弊端
** 无法访问子类特有的功能
如果想使用子类特有的功能,就需要向下转型
向下转型:
* 概述: 就是把父类的引用强制转换成子类的引用
* 格式: 子类名 对象名 = (子类名)父类的引用 ;
向上转型:
* 概述: 就是把父类的引用指向子类对象,就是多态的形式
* 孔子装爹案例
* 多态的内存图
* 多态的练习 |
|