面向对象特征 多态性
package com.atguigu.java4;
/*
* 面向对象特征之三 : 多态性 Polymorphism
*
* 1.理解多态性:可以理解为一个事务的多种形态。
* 2.何为多态性:
* 对象的多态性:父类的引用指向子类的对象(子类的对象 赋给 父类的引用)
*
* 3.多态的使用:虚拟方法调用
* 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法
* 总结 : 编译在左 运行在右
*
* 4.多态性的使用前提 :①要有类的继承关系 ②要有方法的重写
*
* 5.对象的多态性 , 只适用于方法 , 不适用于属性 (编译和运行都看左边)
*/
public class PersonTest
{
public static void main(String[] args)
{
Person p1 = new Person();
p1.eat();
Man man = new Man();
man.eat();
man.age = 25;
man.earnMoney();
//*************************************************
System.out.println("**************************************");
//对象的多态性:父类的引用 指向 子类的对象
Person p2 = new Man();
// Person p3 = new Woman();
//多态的使用:当调用子 父类 同名同参数的方法时,实际执行的是子类重写父类的方法。---虚拟方法调用
p2.eat();
p2.walk();
// p2.earnMoney();错误的
System.out.println(p2.id);//1001
}
}
本文详细探讨了Java中的多态性概念,包括对象的多态性、虚拟方法调用以及使用多态性的前提条件。通过实例展示了如何通过父类引用调用子类重写的方法,强调了编译时和运行时的区别。

被折叠的 条评论
为什么被折叠?



