Denken Sie ein bisschen über die Antwort nach.
Wenn Sie eine Klasse definieren,
die nicht ausdrücklich eine andere Klasse erweitert,
dann wird diese automatisch Object
erweitern.
Wenn Sie eine Klasse definieren, die eine andere Klasse als Object
erweitert,
dann wird jene Klasse (die sie erweitern) entweder eine andere Klasse erweitern oder Object
erweitern.
Jetzt muss jene Klasse wiederum eine andere Klasse erweitern
oder Object
erweitern.
Es gibt keine Möglichkeit diese Kette zu beenden.
Sie könnten intelligenterweise versuchen eine Klasse A eine Klasse B erweitern zu lassen, und umgekehrt die Klasse B Klasse A erweitern zu lassen. Aber das (und andere Loopings) sind nicht erlaubt.
Letztendlich erbt jedes Java Objekt sein objektähnliches Verhalten
von der Klasse Object
.
Wenn ein Objekt konstruiert wird,
wird eine Kette von Konstruktoren aufgerufen. Diese Kette beginnt
mit dem Konstruktor der Klasse Object
und endet mit dem Konstruktor der
geforderten Klasse.
Die grundsätzlichen Teile des Objekts werden durch den
Konstruktor der Klasse Object
zusammengestellt. Dann werden die zusätzlichen Teile, die Kette abwärts, hinzugefügt, bis die geforderte Klasse erreicht ist.
Die Konstruktion beginnt mit dem Konstruktor in Object
,
da jeder Konstruktor (mit Ausnahme des Konstruktors von Object
)
mit dem Aufruf seines super()
Konstruktors beginnt (mit oder ohne Argumente).