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

4-2节Animal类型和Dog类型的转换

Dog dog = new Dog();

Animal animal = dog;

Dog dog2 = (Dog)animal;

第二行代码是把dog 的Dog类型转换成Animal类型吗?

第三行代码的animal又是从Animal类型强制转换成Dog类型吗?是执行后dog2的类型为Dog类型吗?

这节看得很迷糊,看了好几遍,不知道理解得对不对,望告知。

提问者:K_Muxs 2016-09-10 14:28

个回答

  • 追梦_ing
    2016-09-10 15:28:20
    已采纳

    第二行是把Dog的dog赋给了Animal的animal,第三行是先把animal强转Dog类型然后赋给了dog2,他们属于引用关系

  • 罗夏luo
    2016-09-10 15:32:59

    第二行是向上转换,因为Animal类是包含Dog类的,范围更广,前两行其实就相当于普通的父类引用指向子类对象:

    Animal animal = new Dog();

    而第三行是将这个对象animal强制转换成了Dog类;