问答详情
源自:10-2 多态中的引用类型转换

请大神指教多态中的问题

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

和Animal animal=dog  区别在哪?

提问者:Albert668 2017-07-26 20:42

个回答

  • 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

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