taylorfeng
2016-10-18 17:28
红色圈出的注释部分视频前后写的不一样,都把我搞糊涂了。但是Animal animal = dog;这个肯定是向上转换没问题吧?
我打错字了,double有8个字节,而int是4个字节,大到小为向下类型转化
向上类型转化,例如:double avg1=78.9;
int avg2=(int)avg1;
System.out.println(""+avg1);
System.out.println(""+avg2);
jieguowei:avg1=78.9;
avg2=78;
其实你不用纠结于这文字的游戏;
Dog dog = new Dog();给狗这个概念实例化,让狗这个名词变成实实在在的一只生龙活虎的狗
Animal animal = dog;给动物这个概念实例化,让动物这个名词变成一个实实在在的动物---一条狗;这个没问题
反过来你想,Dog dog2=animal,让狗这个概念实例化,让狗这个名词变成一个实实在在的一个动物,这个动物是什么动物呢?并一定这个动物就是一条狗。所以要把这个动物筛选一下,向下缩小一下范围,让它从一只动物变成一只狗,(Dog)animal就是执行了向下转换。理解了这里再回头理解上面。Animal animal = dog;就相当于Animal animal=dog(=>new Animal);是向上转换;
这里是可以抬杠的,不过自己理解了就可以了,不用非要辩论出上下,
Dog dog = new Dog();
Animal animal = dog;
这个是向下类型转换?那你的意思Java面向对象课程里的4-2课程完全错了吗...
向下类型转换
Java入门第二季 升级版
530667 学习 · 6091 问题
相似问题