K_Muxs
2016-09-10 14:28
Dog dog = new Dog();
Animal animal = dog;
Dog dog2 = (Dog)animal;
第二行代码是把dog 的Dog类型转换成Animal类型吗?
第三行代码的animal又是从Animal类型强制转换成Dog类型吗?是执行后dog2的类型为Dog类型吗?
这节看得很迷糊,看了好几遍,不知道理解得对不对,望告知。
第二行是把Dog的dog赋给了Animal的animal,第三行是先把animal强转Dog类型然后赋给了dog2,他们属于引用关系
第二行是向上转换,因为Animal类是包含Dog类的,范围更广,前两行其实就相当于普通的父类引用指向子类对象:
Animal animal = new Dog();
而第三行是将这个对象animal强制转换成了Dog类;
Java入门第二季 升级版
530636 学习 · 6091 问题
相似问题