多态
1.多态的概述及实现
A:多态概述
某一个事物,在不同时刻表现出来的不同状态。
举例: Cat c=new Cat();
Animal a=new Cat();
猫可以是猫的类型。猫 m = new 猫();
同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();
B:多态前提
a:要有继承关系。
b:要有方法重写。 其实没有也是可以的,但是如果没有这个就没有意义。
c:要有父类引用指向子类对象。
父 f = new 子();
C:案例演示
代码体现多态
2.多态的成员访问特点
A:多态中的成员访问特点
a:成员变量
编译看左边,运行看左边
b:构造方法
创建子类对象对象的时候,会访问父类的构造方法,对父类的数据进行初始化。
c:成员方法
编译看左边,运行看右边
d:静态方法
编译看左边,运行看左边
(静态和类相关,算不上重写,所以,访问还是左边的)
B:案例演示
多态中的成员访问特点
3.多态的好处与弊端
A:多态的好处
a:提高了代码的维护性(继承保证)
b:提高了代码的扩展性(由多态保证)
B:案例演示
多态的好处
C:案例演示
多态的弊端
4.向上转型和向下转型
A:通过多态的弊端引出问题
不能使用子类特有的功能
B:解决问题
a:把父类的引用强制转换为子类的引用。(向下转型)
C:案例演示
多态中向上转型和向下转型
案例演示 孔子装爹
5.多态内存图
A:画图演示: 多态的内存图解
A:
B:例题