(1)同一个对象,在不同时刻的多种运行状态。
(2)举例:
动物,狗 狗是狗,狗是动物。
水(气体,液态,固定)
(3)前提
A:存在着继承或者实现关系
B:有方法的重写
C:父类(接口)引用指向子类(实现)对象
(4)不同形式形式模拟多态
A:普通类
B:抽象类
C:接口
(5)多态中对象调用成员的特点
Fu f = new Zi();
A:成员变量
编译看左边,运行看左边
B:成员方法
编译看左边,运行看右边
C:静态方法
编译看左边,运行看左边
(6)多态的思想
指挥同一批对象做事情。
举例:带兵打仗,下课等。
(7)向上转型和向下转型
Animal a = new Dog(); //向上转型
//使用Dog中特有的方法
Dog d = (Dog) a; //向下转型
//注意:不能转换成不同类型的
Cat c = (Cat)a;
举例:
孔子爹:教课(java)
孔子:教课(论语),玩游戏()
//多态
孔子爹 k爹 = new 孔子(); //孔子就穿上他爹的衣服,装爹 向上转型
k爹.教课(); //论语
//k爹.玩游戏();
孔子 k = (孔子) k爹; //脱下衣服,穿上自己衣服。向下转型
k.玩游戏(); |