Java之向上转型

博客结合代码讲解Java中的向上转型。通过分析程序,引出向上转型概念,即程序代码可对基类及其导出类起作用,将导出类引用转化为基类引用的动作。因是从导出类向基类转型,在继承图中向上移动,所以叫向上转型,还提及后续会讲向下转型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习向上转型的过程中,为了将其讲述清楚,让大家更好的理解,定义我们结合代码来讲解。

package lession04;
class Instrument{
	public void play() {}
	static void tune(Instrument i) {
		i.play();
	}
}

public class Wind extends Instrument{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Wind flute=new Wind();
		Instrument.tune(flute);

	}

}

此程序无结果输出

对向上转型的分析:我们可以在Wind类中看到,tune()方法被Instrument引用,更加有趣的是,传递给tune()的参数是一个Wind类的引用,我们说继承关系中,新类是基类的一种类型,那么我们就会认为wind对象也是一种Instrument对象。由此我们引出概念:在tune()中,程序代码可以对Instrument类和所有它的导出类起作用,这种将wind引用转化为Instrument引用的动作,称之为向上转型

学习完之后好奇的读者又会有这样的疑问,为什么会成为向上转型?而不称为其他的呢?
这是由于我们是由导出类向基类的一个转型,在继承图当中表现为向上移动,因此称为向上转型。
在这里插入图片描述
当然也存在向下转型,在后续的学习中会为大家更新。

请大家批评指正,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值