mithilfe der Konstruktor aus der Superklasse

Java erlaubt keine Mehrfachvererbung, d.h. eine Klasse kann nicht Erben von zwei Klassen, die nicht etwas gemeinsam haben, das heißt, Sie sind nicht auf der gleichen Erbe Weg. Jedoch kann die Klasse erbt von mehreren Klassen, wenn diese Klassen sind super-Klassen von der direkten super-Klasse der Klasse. Aber die Klasse erbt von dieser Klassen indirekt, was bedeutet, dass es nicht "sehen" nichts von diesen Ober-super-Klassen, richtig? Ich war verwirrt, wenn man Konstruktoren (mit super() im Konstruktor). Zum Beispiel, wenn wir haben die folgenden Klassen:

public class A {
    public A() { 
      .... 
    }
}

public class B extends A {
    public B() {
      super();
      ....
    }
}

public class C extends B {
    public C() {
      super();
      ....
   }
}

den Konstruktor von der Klasse C ruft zuerst den Konstruktor der Klasse B mit super(). Wenn dies geschieht, wird der Konstruktor von B selbst ruft zuerst den Konstruktor von A (mit super()), aber der Konstruktor von C nicht, wissen nichts über den Konstruktor Ein, richtig? Ich meine, die Vererbung ist nur von der direkten super-Klasse - die ersten (nächsten) - Klasse aus der Vererbungshierarchie. Das ist auch meine Frage - mit super() wird ja nur der Konstruktor der direkten super-Klasse, egal wie viele andere Klassen haben wir in der Vererbungshierarchie.
Und dies gilt nicht nur für Handwerker, sondern für alle Methoden und Instanzvariablen..

Hinsichtlich

  • Noch nicht sicher, was ist die Frage, die Sie gefragt haben. Ein Fragezeichen helfen könnte.
InformationsquelleAutor user42155 | 2009-01-06
Schreibe einen Kommentar