[#0x0019] 关于继承的新认识:导出类调用基类方法其实是向上转型

  前面对继承的理解常常用到了这么一用表述:Base的代码会被复制到Ext中。其实这么理解欠妥,看代码:

class Base
{
	private String inf = "Here is Base";
	
	public String getInf()
	{
		return inf;
	}
}

class Ext extends Base
{
	public static void main(String[] args)
	{
		Ext e = new Ext();
		
		System.out.println(e.getInf());
	}
}

  很明显,Base的private String inf是不能被继承的,所以就算getInf()的代码被复制到Ext中,Ext也是无法调用的getInf()的(Ext中没有inf)。所以e.getInf()其实隐藏了e的向上转型。

  所以我们至多只能说getInf()被复制到Ext的方法列表里。当然,“复制说”还是很形象的,有助理解,细节方面自己知道就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值