Dziedziczenie i tworzenie obiektów, teoretycznie i w realu
Powiedzmy, że mam klasęA.java
,
Kiedy wykonam metodę konstruktora A, utworzy ona pamięć dlaxyz
Obiekt.
A xyz = new A();
Odniesienie do pamięci może być czymś w rodzaju:
[xyz] ---> '0x34524'
To podstawy OOP. Wystarczająco proste!
Teraz,Co się stanie, jeśli klasa dziedziczy z różnych klas nadrzędnych? Ile przestrzeni obiektów zostanie utworzonych w pamięci?
Powiedzmy, że mamy,
a następnie tworzymy obiekt klasyD.java
,
D omg = new D();
Jak wiemy, obiekt D wywoła konstrukcję C.java i tak dalej, aż do A.java. Czy to oznacza, że w pamięci mamy 4 różne odwołania do pamięci, ponieważ tworzymy wszystkie cztery obiekty (jeden bezpośrednio, a drugi pośrednio)?
[omg] ---> '0x34525'
[C] ---> '0x34526'
[B] ---> '0x34527'
[A] ---> '0x34528'
Uwaga :
To nie jest pytanie o pracę domową, to tylko pytanie o ciekawość.Jestem świadomy faktu, że jeśli mamy zmienną instancji wewnątrz A.java, to nie utworzymy tylko obiektu A, ale będziemy tworzyć inny obiekt wewnętrzny za każdym razem, gdy trafimynew
słowo kluczowe.