为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

2 回答

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

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

Animal animal = new Animal();

animal = dog;

12 回复 有任何疑惑可以回复我~
#1

Rhybood 提问者

很舒服,解释很详细,一点积分,不成敬意。
2018-10-19 回复 有任何疑惑可以回复我~
#2

学霸985 回复 Rhybood 提问者

区区小事何足挂齿,,
2019-02-20 回复 有任何疑惑可以回复我~

Animal animal = dog更倾向于赋值;

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

0 回复 有任何疑惑可以回复我~
#1

Rhybood 提问者

我问的问题是关于多态和引用类型转换,你回答的,我看的不是很懂
2018-10-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信