难道只有我发现了一个小问题吗

来源:10-2 多态中的引用类型转换

taylorfeng

2016-10-18 17:28

5805eb0700017dcb05000305.jpg

5805eb0800017db305000278.jpg

红色圈出的注释部分视频前后写的不一样,都把我搞糊涂了。但是Animal animal = dog;这个肯定是向上转换没问题吧?

写回答 关注

5回答

  • qq_梦盈华尔兹_0
    2017-06-12 22:58:57

     我打错字了,double有8个字节,而int是4个字节,大到小为向下类型转化


  • qq_梦盈华尔兹_0
    2017-06-12 22:55:41

    向上类型转化,例如:double avg1=78.9;

                                     int avg2=(int)avg1;

                                      System.out.println(""+avg1);

                                        System.out.println(""+avg2);

    jieguowei:avg1=78.9;

    avg2=78;


  • 慕粉4222547
    2016-10-19 20:24:35

    其实你不用纠结于这文字的游戏;

    Dog dog = new Dog();给狗这个概念实例化,让狗这个名词变成实实在在的一只生龙活虎的狗

    Animal animal = dog;给动物这个概念实例化,让动物这个名词变成一个实实在在的动物---一条狗;这个没问题

    反过来你想,Dog dog2=animal,让狗这个概念实例化,让狗这个名词变成一个实实在在的一个动物,这个动物是什么动物呢?并一定这个动物就是一条狗。所以要把这个动物筛选一下,向下缩小一下范围,让它从一只动物变成一只狗,(Dog)animal就是执行了向下转换。理解了这里再回头理解上面。Animal animal = dog;就相当于Animal animal=dog(=>new Animal);是向上转换;

    这里是可以抬杠的,不过自己理解了就可以了,不用非要辩论出上下,


  • taylorfeng
    2016-10-19 10:19:42

    http://img.mukewang.com/5806d7d3000141e604010165.jpg

    Dog dog = new Dog();

    Animal animal = dog;

    这个是向下类型转换?那你的意思Java面向对象课程里的4-2课程完全错了吗...

    taylor... 回复qq_YAO...

    嗯应该就是这样的。

    2016-10-19 15:49:01

    共 3 条回复 >

  • Rollsbean
    2016-10-18 17:46:23

    向下类型转换

    taylor...

    看我楼下的截图,是截自Java面向对象课程的4-2视频里的

    2016-10-19 10:20:15

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530667 学习 · 6091 问题

查看课程

相似问题