(1) 某一类事物的多种存在形态。
** 方法重载( 静态多态)
** 方法重写( 动态多态, 对象多态)
(2) 对象多态的前提
A :类与类( 或接口) 要有继承( 或实现) 关系。
B :一定要有方法的重写。
C :一定要有父类或者接口的引用指向子类的对象。
(3) 多态思想:可以指挥同一类型的一批对象做事情。多态的出现让我们复杂的问题简单化
了。
A :Animal Cat Dog
**method(Animal a){a.eat();}
B :同学们吃饭
C :士兵打仗( 抬枪,瞄准,射击) 。
(4) 多态中成员的特点:( 我们只研究特殊的,就是说名字一样的东西)
Fu f = new Zi();
A :成员变量:编译和运行都看 Fu 。
B :非静态方法:编译看 Fu ,运行看 Zi 。
C :静态方法:编译和运行都看 Fu 。
举例: 动物的例子:
向上转型
Animal a = new Cat();
a.eat();
//a.catchMouse();
向下转型
Cat c = (Cat)a;
c.eat();
c.catchMouse();
// 向上转型
Animal a = new Dog();
// 向下转型 转换异常
//Cat c = (Cat)a;
Dog d = (Dog)a;
孔爹的例子:
孔爹: 教课(Java)
孔子: 教课( 论语), 看小说(), 打游戏() 。
爹 孔爹 k = new 孔子();// 穿上他爹衣服, 就跟着去了
k. 教课( 论语) 。
//k. 看小说();
子 孔子 kz = ( 孔子)k;// 把衣服脱了
kz. 教课( 论语);
kz. 看小说();
kz. 打游戏(); |
|