课程
/后端开发
/Java
/Java入门第二季 升级版
视频中老师说Animal animal=dog是父类引用指向子类对象这不是和Animal animal=new Dog()解释一样吗?一种解释怎么会有两种表达方式?感觉很奇怪。
2018-10-18
源自:Java入门第二季 升级版 10-2
正在回答
第一种写法是定义一个Dog类的对象,就是你说的父类引用指向子类对象,思想是多态。
第二种写法是定义Animal类的对象,并且把dog赋值给它。这里有一个隐藏的类型转换。可以分解成两句话实现,
Animal animal = new Animal();
animal = dog;
Rhybood 提问者
学霸985 回复 Rhybood 提问者
Animal animal = dog更倾向于赋值;
可以在类里写一个变量,和对应的get、set方法。然后先将dog中的变量赋值,再把dog赋值给animal,此时animal中的变量就是dog赋值过的值。
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
3 回答Animal animal=new Dog()和Animal animal=dog有区别吗?
2 回答Dog dog2= (Dog )animal;和Animal animal=dog;的含义
6 回答Animal obj2 = new Dog();
4 回答Animal animal = dog;的含义
4 回答Animal也是类名,为什么不能是Animal Dog=new Animal();