问答详情
源自:10-2 多态中的引用类型转换

判断父类对象类型

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

提问者:乱步 2015-08-25 15:21

个回答

  • 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

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