为什么这一段代码运行时也会报错?

为什么这一段代码运行时也会报错?

Animal one=new Animal();

Cat three=(Cat) two;

dog和cat之间不能不能转我能理解,为什么父类和子类之间也不能这么转?

虽然编译不报错,但是运行时出现了错误。

正在回答

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

3回答

http://img1.sycdn.imooc.com/climg//5882122f0001b37302150030.jpg你是不能理解这句吗?如果是这句的话,我可以帮你理解哦,two是父类的引用,它可能有多个类似Cat的子类,如果要让它唯一指向Cat的对象,那就要将这个引用强制转化为Cat类型。

  • 轻风起自远东QAQ 提问者 #1
    哎呀我打错了,第一句应该是Animal two=new Animal(); 然后其实错误是第二句造成的啦,two本身是Animal类的对象,是无法强制转换为Cat类型的,如果第一句代码是Animal two=new Cat();的话就不会报错了
    2017-01-22 10:20:35
慕尼黑6819948 2017-01-21 01:01:21

我自己删除回答!!不好意思

好帮手慕珊 2017-01-20 22:04:51

你好!可以贴一下你的代码和报错信息吗?这样我们能更好的排查问题,祝学习愉快!

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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