向下转型的疑问

向下转型的疑问

为什么不能写成:Cat temp=new Animal();或者Cat temp=(Animal)two;这种形式呢?

如果没有上面的向上转型Animal two=new Cat();  是否能直接写Cat temp=new Animal();呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
喜欢做梦的鱼 2018-06-19 14:31:18

1、向上转型在Java的语法中,父类 引用=new 子类(); 这是一种语法规则,不能写成同学想要的格式;

2、向下转型,可以采用楼上同学的方式或者,针对已经向上转型后的父类引用进行强转,不能子类引用直接指向父类。

慕慕6012600 2018-06-19 14:18:46

Animal是父类,Cat是其子类,向上转型写成Animal cat = new Cat()  不需要强制类型转换,而向下转型为:Cat cat = (Cat)new Animal()必须强制类型转换

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师