乱步
2015-08-25 15:21
之所以强制转换可能会导致程序无法运行的原因是,子类与父类的对象类型不一致,一个是cat,一个是dog,那我们是怎么知道父类是dog的?如何判断。(人为判断,不是使用instanceof)!
看看引用的改变:
如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)。
从右往左读就好;类似于看赋值语句,,只是这里给的是引用
人为判断。。。,看看源码不就完了,不知道你想说什么
Java入门第二季 升级版
530559 学习 · 6091 问题
相似问题