为什么dog就可以强制类型转换,而cat就不行?不都是动物的子类么?

来源:10-2 多态中的引用类型转换

又双叒叕QAQ

2019-09-05 17:57

为什么dog就可以强制类型转换,而cat就不行?不都是动物的子类么?

写回答 关注

5回答

  • mushji
    2020-02-12 14:32:14

    因为你没有创建cat类型的对象你创建cat对象就可以强制转换

    Cat cat= new Cat();创建这个就可以转换了;

  • 小木鱼8209172
    2019-09-19 11:09:07

    能不能转换请查看instanceof....你明白了这个关键字,就明白原因了。

  • 慕移动5638320
    2019-09-15 10:25:03

    他们都是动物 所以猫狗都阔以转化为动物 但猫狗之间不能转化 物种不同


  • 无限记录者
    2019-09-06 11:31:26

    【对象dog】转换成【对象animal】,两个对象的地址是一致的“Dog@……”

    Cat类的对象,运行时引用的是应该是“Cat@……”的地址

    回锅锅包肉 回复qq_慕九州...

    你没有搞明白三者之间的关系,animal是父类类型他的子类是dog,和cat 三块内存 dog和cat没有关系 。如果同一个内存地址父类会调用子类方法,这样就违背了规范。规范是父类不能调用子类方法,子类可以调用父类方法。懂了吧

    2019-12-22 10:30:46

    共 2 条回复 >

  • 要做就做周幽王
    2019-09-06 11:17:49

    他是将dog对象转换为父类对象animal,子类可以转换为父类,初始对象是dog,dog跟cat类是同级别的,所以不能转换为cat类

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题