Java向上转型和向下转型

本文介绍了Java中的向上转型和向下转型。向上转型允许使用父类引用调用子类覆写的方法,但无法调用子类特有的方法。向下转型则通过强制转换实现,但存在类型转换异常风险,通常不推荐频繁使用。学习编程应注重实践,结合实例避免走马观花。

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

一、向上转型

简单的说向.上转型就是:将-一个子类类型的对象赋值给- -个父类类型的变量,

基本的实现语法:

父类类型变量=new 子 类类型();

DEMO:向上转型

发现了可以使用父类类型的变量调用子类覆写了父类的方法,但是为什么不调用Worker的say()方法呢?原因是具体调用哪一个子类覆写的方法是在运行期间根据具体你赋值的子类来确定的。

思考:在之前我们说过,子类出了可以继承父类的成员方法和变量还可以扩充属于自己的新的操作,那么可以使用父类类型的变量调用子类新扩充的方法吗?

DEMO:调用子类新扩充的方法

发现了不能使用父类类型的变量调用子类新扩充的方法,如果要实现调用可以使用向下转型。将一个父类类型的变量强制转换为子类类型。具体的实现语法:

但是向下转型会存在风险,存在类型转换异常的风险。

二:向下转型

简单的说向上转型就是:将一个父类类型的变量强制转换为子类类型。具体的实现语法:

DEMO:向下转型

发现了实现向下转型必须先向,上转型,但是向下转型作用不大,只是作为知识点提出,向下转型还存在类型转换异常的风险。

向下转型用得不多,你知道这个概念就行,但是你要记住这个异常(ClassCastException)。其实也可以在代码中防止这样的异常。

DEMO:防止异常的出现

虽然可以使用instanceof关键字防止类型转换异常的出现,但是没事干别向下转型。

 

 

 

最后

学习不要走马观花的学,每个知识重点大纲,就是学习路线都是根据每一天市场上多数公司用到的新技术整理,在学习的时候还需要结合练习题来做这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群697888503这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值