java中父类引用指向子类对象时,创建的对象属于哪个类的实例化对象?

java中父类引用指向子类对象时,创建的对象属于哪个类的实例化对象?

例如:
Animal dog = new Dog();

其中Animal是Dog的父类。
那么我新创建的dog对象,属于Animal类的实例化对象,还是Dog类的实例化对象?

==================================
已经知道是dog了。

主要是不是很能理解为什么要引用父类。即便不引用父类,子类的对象不是一样可以使用父类的方法吗?但是引用父类的话,反而无法调用子类定义而父类没有定义的那些方法了。我不明白为什么要这么做?

阅读 4.1k
3 个回答

你都new Dog()了 你说是谁的实例化对象?

当然是dog。 这样的话,属性是走父类的属性吧

多态多态,独中形态.

多态的本质就是子类对父类方法的重写.

打个比方human类有三个子类 man women superman

human 定义了一个方法 void write();

以下是三个子类对其的实现:

(man) write==> i am man

(women) write==> i am women

(superman) write==> i am superman

那么传入三个对象分别调用其write方法的时候

就会打印 自己的 话 i am man i am women i am superman

至于你说的不能用子类的方法 可以向下转型啊

安全高效,可拓展性高,降低了程序的耦合性

懂了没

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题