求解答Animal animal=new Dog()和Animal animal=dog的解释为什么一样

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

Rhybood

2018-10-18 16:59

视频中老师说Animal animal=dog是父类引用指向子类对象这不是和Animal animal=new Dog()解释一样吗?一种解释怎么会有两种表达方式?感觉很奇怪。

写回答 关注

2回答

  • __XiaoN
    2018-10-19 15:37:14
    已采纳

    第一种写法是定义一个Dog类的对象,就是你说的父类引用指向子类对象,思想是多态。

    第二种写法是定义Animal类的对象,并且把dog赋值给它。这里有一个隐藏的类型转换。可以分解成两句话实现,

    Animal animal = new Animal();

    animal = dog;

    学霸985 回复Rhyboo...

    区区小事何足挂齿,,

    2019-02-20 00:31:24

    共 2 条回复 >

  • __XiaoN
    2018-10-18 17:35:20

    Animal animal = dog更倾向于赋值;

    可以在类里写一个变量,和对应的get、set方法。然后先将dog中的变量赋值,再把dog赋值给animal,此时animal中的变量就是dog赋值过的值。

    Rhyboo...

    我问的问题是关于多态和引用类型转换,你回答的,我看的不是很懂

    2018-10-19 09:41:04

    共 1 条回复 >

Java入门第二季 升级版

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

530636 学习 · 6091 问题

查看课程

相似问题