课程
/后端开发
/Java
/Java入门第二季 升级版
之所以强制转换可能会导致程序无法运行的原因是,子类与父类的对象类型不一致,一个是cat,一个是dog,那我们是怎么知道父类是dog的?如何判断。(人为判断,不是使用instanceof)!
2015-08-25
源自:Java入门第二季 升级版 10-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)。
从右往左读就好;类似于看赋值语句,,只是这里给的是引用
人为判断。。。,看看源码不就完了,不知道你想说什么
乱步 提问者
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
4 回答强制类型转换不能直接将父类对象转换为子类对象吗
1 回答父类引用指向子类对象。
2 回答判断两个对象类型是否相同用 obj instanceof Dog 可以么?
2 回答关于父类创建对象引用子类
2 回答对象数组的类型