面向对象特征 多态性

本文详细探讨了Java中的多态性概念,包括对象的多态性、虚拟方法调用以及使用多态性的前提条件。通过实例展示了如何通过父类引用调用子类重写的方法,强调了编译时和运行时的区别。

面向对象特征 多态性


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
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值