请大神指教多态中的问题

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

Albert668

2017-07-26 20:42

多肽中的Animal  obj1=new Dog()这个不是父类引用指向子类吗?

和Animal animal=dog  区别在哪?

写回答 关注

3回答

  • itme_BJV
    2017-08-16 16:38:48

    第一个是指父类引用指向子类对象,从而由继承的角度创建Dog对象,dog继承animal这个类的。

    第二个前面有Dog dog=new Dog();因为dog继承animal所以可以从子类传换成父类animal这个对象。

    你可以理解成将狗变成动物。是需要强制转换的。


    区别就在于第一个是由继承来创建dog对象,这个dog对象是可以继承animal的所有东西,只是创建对象而已。

    第二个只是dog对象强制转换成animal对象,类型转换。

  • 精慕门0531934
    2017-08-01 21:54:08

    因为dog本身是继承自animal的,Animal animal=dog是指,dog引用自animal对象

  • CoderStar
    2017-07-26 20:58:35

    第一个是父类引用指向子类对象,第二个不知道是什么。我也没看懂


Java入门第二季 升级版

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

530557 学习 · 6091 问题

查看课程

相似问题