Das Schlüsselwort 'super' in Java hat eine zentrale Funktion. Es wird verwendet, um auf Methoden oder Variablen der Superklasse zuzugreifen, die von einer Subklasse über schrieben wurden. Im Kontext der Frage ist der Hauptzweck von 'super' die Möglichkeit, eine Methode der Superklasse aufzurufen, die in einer Unterklasse durch eine andere Methode gleichen Namens überschrieben wurde.
Angenommen, wir haben zwei Klassen, eine Superklasse namens 'Fahrzeug' und eine Subklasse namens 'Auto'. Die Klasse Fahrzeug hat eine Methode namens 'display', die meldet "'Fahrzeug' wird angezeigt". Die Klasse 'Auto' überschreibt diese Methode mit der gleichen Methode, die allerdings "'Auto' wird angezeigt" meldet.
class Fahrzeug{
void display(){
System.out.println("'Fahrzeug' wird angezeigt");
}
}
class Auto extends Fahrzeug{
void display(){
System.out.println("'Auto' wird angezeigt");
}
}
Wenn Sie nun versuchen, "display" aus 'Auto' aufzurufen, zeigt es "'Auto' wird angezeigt", obwohl die ursprüngliche Methode aus der Superklasse etwas anderes ausgibt. Hier kommt 'super' ins Spiel.
class Auto extends Fahrzeug{
void display(){
super.display();
System.out.println("'Auto' wird angezeigt");
}
}
Mit 'super.display()' ruft die Unterklasse die Methode 'display()' der Superklasse auf, und Sie erhalten beide Ausgabe: zunächst "'Fahrzeug' wird angezeigt" und dann "'Auto' wird angezeigt".
Das Schlüsselwort 'super' ermöglicht es uns nicht nur, auf die von der Superklasse geerbten Methoden zuzugreifen, sondern auch auf die von der Superklasse geerbten Variablen. Es ist wichtig zu beachten, dass 'super' nicht verwendet werden kann, um auf private Methoden oder Variablen der Superklasse zuzugreifen. In solchen Fällen sollten getter- und setter-Methoden zum Abrufen oder Einstellen des Wertes der Variablen verwendet werden.
Eine weitere wichtige Anwendung von 'super' ist die Möglichkeit, den Konstruktor der Superklasse aufzurufen. Dies ist besonders nützlich, wenn die Superklasse Parameter im Konstruktor hat, die initialisiert werden müssen.
Insgesamt erhöht das Schlüsselwort "super" in Java die Wiederverwendung von Code, reduziert die Redundanz und unterstützt einen klaren und effizienten Objektorientierten Programmieransatz.