XxSniper
2018-10-02 12:17
如何理解这句话,Animal obj2 = new Dog();创建的这个对象到底是父类的对象还是子类Dog的对象???
这么说可能好理解一些:new Dog()这个语句代表的就时创建的一个Dog类的对象,此时内存已经分配了空间。然后前面的Animal obj2是用来给这个对象赋值的,因为obj2是一个引用,他代表的就是对象的内存。然后他是父类的,所以他是父类的引用。
个人理解。
创建的是子类dog的对象,但是这个对象的类型是animal的类型,所以这个对象可以调用animal这个父类继承下来的方法和属性(子类重写的方法同样也可以),不能调用dog类所独有的方法。
Animal obj2 = new Dog()可以理解为:obj2可以引用子类从父类继承和重写的方法,但是不可以引用Dog类中所独有(父类中没有的)方法
一只狗,你可以说他是一只狗,可以说他是一只动物。虽然说法不一样,改变不了他是狗的事实。
子类dog的对象
Java入门第二季 升级版
530641 学习 · 6091 问题
相似问题