Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.5.2

Verketten von Konstruktoren



Der Konstruktor von Square, den wir im vorangegangenen Schritt definiert haben, weist eine Besonderheit auf. Die Koordinaten und die Farbe werden nicht mit
  this.x = x;
  this.y = y;
  this.color = color;
zugewiesen (was ohne weiteres möglich wäre). Stattdessen wird der Konstruktor von Point mit
  super(x, y, color);
aufgerufen. In dieser Syntax dient das Schlüsselwort super stets dazu, einen Konstruktor der Oberklasse aufzurufen. Dadurch können Initialisierungsvorgänge, die bei der Unterklasse identisch sind, einfach übernommen werden, ohne sie nochmals zu implementieren. Die Unterklasse ruft stattdessen einfach einen geeigneten Konstruktor der Oberklasse auf und implementiert selbst nur die zusätzliche Funktionalität, die im Rahmen der Erweiterung nötig ist. Im Beispiel von Point und Square ist das Setzen der Koordinaten und der Farbe für Punkte und Quadrate identisch. Für Quadrate muss nur noch zusätzlich die Seitenlänge eingestellt werden.

Falls man einen geerbten Konstruktor wiederverwenden will, ist zu beachten, dass dessen Aufruf grundsätzlich an erster Stelle des neuen Konstruktors stehen muss.

Ablauf der Erzeugung

Das Erzeugen eines neuen Exemplars einer Klasse läuft in folgenden Schritten ab: Dieser Ablauf sei an folgendem Beispiel verdeutlicht:
  class A {
    public A() {
      System.out.println("A");
    }
  }
  
  class B extends A {
    int x = 1;
  
    { System.out.println("1. Exemplar-Initialisierung: "+x); }
  
    public B() {
      System.out.println("B: "+x);
    }
  
    { System.out.println("2. Exemplar-Initialisierung: "+x); }
  }
Die Anweisung new B() liefert die Ausgabe:
A
1. Exemplar-Initialisierung: 1
2. Exemplar-Initialisierung: 1
B: 1
Besonders zu beachten ist, dass der Konstruktor von A gemäß der ersten Regel zur Ausführung kommt, obwohl er nicht ausdrücklich in B() aufgerufen wird.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.