Ja — es sieht so aus als ob wir den gleichen Code zweimal geschrieben haben.
super
in einer Subklassen-Methode
Manchmal (wie in diesem Beispiel) möchten wir, dass eine Subklasse
ihre eigene Methode hat, aber diese Methode enthält ebenfalls all das, was bereits die Methode der Superklasse tut.
In dieser Situation können wir das spezielle Schlüsselwort super
verwenden.
Hier ist die Methode von Videoband
:
public void anzeigen() { System.out.println(titel + ", " + laenge + " Min. verfuegbar: " + vorhanden); }
Hier ist die Methode von Spielfilm
ohne die Verwendung von super
:
public void anzeigen() { System.out.println(titel + ", " + laenge + " Min. verfuegbar: " + vorhanden); System.out.println("Regisseur: " + regisseur + " " + bewertung); }
Die Methode von Spielfilm
würde besser mit der Anweisung super
geschrieben:
public void anzeigen()
{
super.anzeigen();
System.out.println("Regisseur: " +
regisseur + " " + bewertung );
}
Bei der Verwendung in einer Methode muss super
nicht als erste Anweisung verwendet werden, anders als bei der Verwendung in einem Konstruktor.
Wir überlegen uns zwei Gründe, warum diese Verwendung von super
eine super Sache ist.