zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein.

Nur EINE Klassenhierarchie

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).

FRAGE 23:

Muss eine Superklasse jedes Mal neu kompiliert werden, wenn eine neue Subklasse von ihr abgeleitet wird?