向下转型时的问题

向下转型时的问题

https://img1.sycdn.imooc.com//climg/612eee650996681408380242.jpg

这里Two为什么能转换成Cat类型而不能转换成Dog类型呢?

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

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

1回答
好帮手慕小小 2021-09-01 11:23:54

同学你好,因为two是Cat类的实例,及Animal two = new Cat(),所以two instanceof Cat的结果为true,可以转为Cat而不能转换为Dog

https://img1.sycdn.imooc.com//climg/612ef1c8091c1c4011830218.jpg

祝学习愉快~

  • 提问者 学习使我快乐v #1

    好的,那two是Cat类型的实例的话,那two这个对象到底是Animal类型还是Cat类型呢?我有点迷糊

    2021-09-01 11:28:51
  • 同学你好,two的类型是Animal。

    Animal two = new Cat()是多态的体现,为“向上转型”父类的引用指向子类的对象,即声明的是父类,实际指向的是子类的一个对象。two引用的类型是Animal,但是实际指向的Cat类的对象。

    祝学习愉快~


    2021-09-01 11:56:16
  • 理解了,谢谢老师


    2021-09-01 15:06:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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