Java的多态

java引用变量有2个类型,一个是编译时类型,一个是运行时类型:

如果编译时类型和运行时类型不同,就出现多态。相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态。
一、方法才具有多态性,实例变量不具有。
二、当使用多态方式调用方法时,首先检查父类中是否有该方法,如果有,且子类方法覆盖了父类方法,那么去调用子类的同名方法,如果未覆盖则直接调用父类方法。如果没有,则编译错误。

public class BaseClass {
	public int book = 6;
	public void base()
	{
		System.out.println("父类的普通方法。");
	}
	public void test()
	{
		System.out.println("父类要被覆盖的方法。");
		
	}
	public class SubClass extends BaseClass{
	public String book = "轻量级企业应战实例。";
	public void test()
	{
		System.out.println("覆盖父类的方法。");
	}
	
	public void sub()
	{
		System.out.println("子类的普通方法。");
	}
	public static void main(String[] args) {
		BaseClass c = new SubClass();//多态
		System.out.println(c.book);//实例变量没有多态现象,所以book是父类的
		c.base();//先检查base test sub 方法父类中有没有,sub没有,所以错误。
		c.test();//bse test有,base直接调用,test被子类覆盖,所以调用子类test方法。
	    //c.sub();
	
	}

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值