判断父类对象类型

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

乱步

2015-08-25 15:21

之所以强制转换可能会导致程序无法运行的原因是,子类与父类的对象类型不一致,一个是cat,一个是dog,那我们是怎么知道父类是dog的?如何判断。(人为判断,不是使用instanceof)!

写回答 关注

2回答

  • cainiao7189
    2015-11-07 13:37:53

    看看引用的改变:

        如Animal a = new Dog();//此时将Dog类给Animal的引用a

            Dog d = (Dog)a;//将a的引用强制转为Dog类型,赋给Dog引用。

            a = new Cat();//此时将Cat类给Animal的引用a

            Dog dog = (Cat)a;//强制将Cat的引用a给Dog类的引用dog。(编译不会报错,但是Cat类和Dog类之间没联系,因此运行时会出现报错:ClassCastExcepting)。

    从右往左读就好;类似于看赋值语句,,只是这里给的是引用

  • 没有马甲线的安琪拉
    2015-08-25 19:52:44

    人为判断。。。,看看源码不就完了,不知道你想说什么

    乱步

    问的就是源码怎么看出来,又没写对象类型,又不是数据类型这种直观的

    2015-08-27 16:01:49

    共 1 条回复 >

Java入门第二季 升级版

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

530652 学习 · 6091 问题

查看课程

相似问题