多态的概述
同一个对象,在不同时刻表现出来的不同形态
举例:猫
我们可以说猫是猫 猫 cat = new 猫();
也可以说猫是动物 动物 animal = new 猫();
这里猫在不同的时刻表现出来了不同的形态,这就是多态
多态的前提和体现
1.有继承/实现关系
2.有方法重写
3.有父类引用指向子类对象Animal父类 cat子类
多态的访问特点
访问成员变量 编译看左边 运行看左边
访问成员方法 编译看左边 运行看右边
举例 AnimalTest测试类 Animal动物类 cat类
当我们访问成员变量时编译代码看左边( Animal动物类)不然会报错
运行访问成员变量看左边( Animal动物类)
运行结果!!!!!!!!!!!!!!!!
Animal动物类
cat类
当我们访问成员方法时同上但是运行看右边(Cat类)
运行结果
Animal动物类
cat类
为什么成员变量和成员方法访问不一样你?
因为成员方法有重写,而成员变量没有
多态的好出跟弊端
好处:提高了程序的扩展性
弊端:不能使用子类的特有功能
弊端
cat类(子类)
特有的方法playGame();
Animal动物类