Наследование и создание объектов, теоретически и в реальности

. Допустим, у меня есть класс A.java,

enter image description here

Когда я выполню метод конструктора A, он создаст пространство памяти для xyzObject.

A xyz = new A();

Ссылка на память может быть примерно такой:

[xyz] ---> '0x34524'

Это основы ООП. Достаточно просто!

Теперь

Что произойдет, если класс наследуется от разных родительских классов? Сколько объектного пространства будет создано в памяти?

Допустим, у нас есть,

enter image description here

а затем мы создаем объект класса D.java,

D omg = new D();

Здесь, как мы знаем, объект D будет вызывать конструкцию C.java и так далее до A.java. Означает ли это, что в памяти у нас есть 4 разных ссылки на память, потому что мы создаем экземпляры всех четырех объектов (один напрямую и еще 3 косвенно )?

[omg] ---> '0x34525'
[C]   ---> '0x34526'
[B]   ---> '0x34527'
[A]   ---> '0x34528'

Примечание:

  1. Это не вопрос домашнего задания, это просто вопрос любопытства.
  2. Я знаю, что если у нас есть переменная экземпляра внутри A.java, то мы не будем создавать только объект A, но мы будем создавать другой внутренний объект всякий раз, когда нажимаем ключевое слово new.
5
задан Paul Bellora 6 August 2012 в 23:09
поделиться