难道只有我发现了一个小问题吗
红色圈出的注释部分视频前后写的不一样,都把我搞糊涂了。但是Animal animal = dog;这个肯定是向上转换没问题吧?
红色圈出的注释部分视频前后写的不一样,都把我搞糊涂了。但是Animal animal = dog;这个肯定是向上转换没问题吧?
2016-10-18
其实你不用纠结于这文字的游戏;
Dog dog = new Dog();给狗这个概念实例化,让狗这个名词变成实实在在的一只生龙活虎的狗
Animal animal = dog;给动物这个概念实例化,让动物这个名词变成一个实实在在的动物---一条狗;这个没问题
反过来你想,Dog dog2=animal,让狗这个概念实例化,让狗这个名词变成一个实实在在的一个动物,这个动物是什么动物呢?并一定这个动物就是一条狗。所以要把这个动物筛选一下,向下缩小一下范围,让它从一只动物变成一只狗,(Dog)animal就是执行了向下转换。理解了这里再回头理解上面。Animal animal = dog;就相当于Animal animal=dog(=>new Animal);是向上转换;
这里是可以抬杠的,不过自己理解了就可以了,不用非要辩论出上下,
举报