为了账号安全,请及时绑定邮箱和手机立即绑定

判断父类对象类型

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

正在回答

2 回答

看看引用的改变:

    如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)。

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

乱步 提问者

问的就是源码怎么看出来,又没写对象类型,又不是数据类型这种直观的
2015-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

判断父类对象类型

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信