课程
/后端开发
/Java
/Java入门第二季 升级版
如何理解这句话,Animal obj2 = new Dog();创建的这个对象到底是父类的对象还是子类Dog的对象???
2018-10-02
源自:Java入门第二季 升级版 10-1
正在回答
这么说可能好理解一些:new Dog()这个语句代表的就时创建的一个Dog类的对象,此时内存已经分配了空间。然后前面的Animal obj2是用来给这个对象赋值的,因为obj2是一个引用,他代表的就是对象的内存。然后他是父类的,所以他是父类的引用。
个人理解。
创建的是子类dog的对象,但是这个对象的类型是animal的类型,所以这个对象可以调用animal这个父类继承下来的方法和属性(子类重写的方法同样也可以),不能调用dog类所独有的方法。
慕斯1062169
Animal obj2 = new Dog()可以理解为:obj2可以引用子类从父类继承和重写的方法,但是不可以引用Dog类中所独有(父类中没有的)方法
一只狗,你可以说他是一只狗,可以说他是一只动物。虽然说法不一样,改变不了他是狗的事实。
子类dog的对象
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答父类引用指向子类对象。
2 回答父类的引用可以指向子类的对象什么意思?
3 回答为什么要用父类的引用指向子类的对象?
2 回答父类引用指向子类对象时,属性的情况?
3 回答父类没有属性,子类新加的属性,是不能用父类的引用指向子类对象的吧