logo

Super-Schlüsselwort in Java

Der Super-Schlüsselwort in Java ist eine Referenzvariable, die verwendet wird, um auf die übergeordnete Klasse zu verweisen, wenn wir mit Objekten arbeiten. Sie müssen die Grundlagen kennen Nachlass Und Polymorphismus um das Java-Super-Schlüsselwort zu verstehen.

Das Schlüsselwort super kam mit dem Konzept der Vererbung ins Spiel. In diesem Artikel behandeln wir alles über Super in Java, einschließlich Definitionen, Beispiele, Verwendungen, Syntax und mehr.

Inhaltsverzeichnis



Eigenschaften des Super-Schlüsselworts in Java

In Java wird das Schlüsselwort super verwendet, um auf die übergeordnete Klasse einer Unterklasse zu verweisen. Hier sind einige seiner Hauptmerkmale:

  • super wird verwendet, um einen Superklassenkonstruktor aufzurufen: Wenn eine Unterklasse erstellt wird, muss ihr Konstruktor den Konstruktor ihrer übergeordneten Klasse aufrufen. Dies geschieht mit dem Schlüsselwort super(), das den Konstruktor der übergeordneten Klasse aufruft.
  • super wird verwendet, um eine Superklassenmethode aufzurufen: Eine Unterklasse kann eine in ihrer übergeordneten Klasse definierte Methode mit dem Schlüsselwort super aufrufen. Dies ist nützlich, wenn die Unterklasse zusätzlich zu ihrer eigenen die Implementierung der Methode der übergeordneten Klasse aufrufen möchte.
  • super wird verwendet, um auf ein Superklassenfeld zuzugreifen: Eine Unterklasse kann mit dem Schlüsselwort super auf ein in ihrer übergeordneten Klasse definiertes Feld zugreifen. Dies ist nützlich, wenn die Unterklasse auf die Version eines Felds der übergeordneten Klasse verweisen möchte.
  • super muss die erste Anweisung in einem Konstruktor sein: Beim Aufruf eines Oberklassenkonstruktors muss die super()-Anweisung die erste Anweisung im Konstruktor der Unterklasse sein.
  • super kann nicht in einem statischen Kontext verwendet werden: Das Schlüsselwort super kann nicht in einem statischen Kontext verwendet werden, z. B. in einer statischen Methode oder einem statischen Variableninitialisierer.
  • super ist nicht erforderlich, um eine Superklassenmethode aufzurufen: Es ist zwar möglich, das Schlüsselwort super zum Aufrufen einer Methode in der übergeordneten Klasse zu verwenden, dies ist jedoch nicht erforderlich. Wenn eine Methode in der Unterklasse nicht überschrieben wird, wird beim Aufruf ohne das Schlüsselwort super die Implementierung der übergeordneten Klasse aufgerufen.

Insgesamt ist die Super-Schlüsselwort ist ein leistungsstarkes Tool für die Unterklassenbildung in Java, das es Unterklassen ermöglicht, die Funktionalität ihrer übergeordneten Klassen zu erben und darauf aufzubauen.

Verwendung des Super-Schlüsselworts in Java

Es wird hauptsächlich in den folgenden Zusammenhängen verwendet, wie unten erwähnt:

  • Verwendung von Super mit Variablen
  • Verwendung von Super mit Methoden
  • Verwendung von Super mit Konstruktoren

1. Verwendung von Super mit Variablen

Dieses Szenario tritt auf, wenn eine abgeleitete Klasse und eine Basisklasse dieselben Datenelemente haben. In diesem Fall besteht die Möglichkeit einer Unklarheit JVM .

Anhand des folgenden Beispiels können wir es besser verstehen:

Beispiel

Java




// super keyword in java example> > // Base class vehicle> class> Vehicle {> >int> maxSpeed =>120>;> }> > // sub class Car extending vehicle> class> Car>extends> Vehicle {> >int> maxSpeed =>180>;> > >void> display()> >{> >// print maxSpeed of base class (vehicle)> >System.out.println(>'Maximum Speed: '> >+>super>.maxSpeed);> >}> }> > // Driver Program> class> Test {> >public> static> void> main(String[] args)> >{> >Car small =>new> Car();> >small.display();> >}> }>

>

>

Ausgabe

Maximum Speed: 120>

Im obigen Beispiel haben sowohl die Basisklasse als auch die Unterklasse ein Mitglied maxSpeed. Mit dem Schlüsselwort super können wir auf die maximale Geschwindigkeit der Basisklasse in der Unterklasse zugreifen.

2. Verwendung von Super mit Methoden

Dies wird verwendet, wenn wir die übergeordnete Klasse aufrufen möchten Methode . Wenn also eine übergeordnete und eine untergeordnete Klasse dieselben Methoden haben, verwenden wir zur Auflösung von Mehrdeutigkeiten das Schlüsselwort super.

Dieser Codeausschnitt hilft, die besagte Verwendung des Super-Schlüsselworts zu verstehen.

Beispiel

Java




// super keyword in java example> > // superclass Person> class> Person {> >void> message()> >{> >System.out.println(>'This is person class '>);> >}> }> // Subclass Student> class> Student>extends> Person {> >void> message()> >{> >System.out.println(>'This is student class'>);> >}> >// Note that display() is> >// only in Student class> >void> display()> >{> >// will invoke or call current> >// class message() method> >message();> > >// will invoke or call parent> >// class message() method> >super>.message();> >}> }> // Driver Program> class> Test {> >public> static> void> main(String args[])> >{> >Student s =>new> Student();> > >// calling display() of Student> >s.display();> >}> }>

>

>

Ausgabe

This is student class This is person class>

Im obigen Beispiel haben wir gesehen, dass wir nur die Methode aufrufen Nachricht() Anschließend wird die aktuelle Klasse message() aufgerufen, jedoch unter Verwendung des Schlüsselworts super. Nachricht() der Superklasse könnte ebenfalls aufgerufen werden.

3. Verwendung von Super mit Konstruktoren

Das Schlüsselwort super kann auch verwendet werden, um auf den Konstruktor der übergeordneten Klasse zuzugreifen. Noch wichtiger ist, dass „super“ je nach Situation sowohl parametrische als auch nichtparametrische Konstruktoren aufrufen kann.

Im Folgenden finden Sie den Codeausschnitt zur Erläuterung des oben genannten Konzepts:

Beispiel 1

Java


tun, während in Java



// Java Code to show use of> // super keyword with constructor> > // superclass Person> class> Person {> >Person()> >{> >System.out.println(>'Person class Constructor'>);> >}> }> > // subclass Student extending the Person class> class> Student>extends> Person {> >Student()> >{> >// invoke or call parent class constructor> >super>();> > >System.out.println(>'Student class Constructor'>);> >}> }> > // Driver Program> class> Test {> >public> static> void> main(String[] args)> >{> >Student s =>new> Student();> >}> }>

>

>

Ausgabe

Person class Constructor Student class Constructor>

Im obigen Beispiel haben wir den Superklassenkonstruktor mit dem Schlüsselwort „super“ über den Unterklassenkonstruktor aufgerufen.

Beispiel 2

Java




class> ParentClass {> >public> boolean> isTrue() {>return> true>; }> }> > class> ChildClass>extends> ParentClass {> >public> boolean> isTrue()> >{> >// calls parent implementation of isTrue()> >boolean> parentResult =>super>.isTrue();> >// negates the parent result> >return> !parentResult;> >}> }> > public> class> Main {> >public> static> void> main(String[] args)> >{> >ChildClass child =>new> ChildClass();> >// calls child implementation> >// of isTrue()> >boolean> result = child.isTrue();> > >// prints 'false'> >System.out.println(result);> >}> }>

>

>

Ausgabe

false>

Vorteile der Verwendung von Java Super Keyword

Der Super-Schlüsselwort in Java Bietet viele Vorteile in der objektorientierten Programmierung:

  • Ermöglicht die Wiederverwendung von Code : Durch die Verwendung des Schlüsselworts super können Unterklassen Funktionen von ihren übergeordneten Klassen erben, was die Wiederverwendung von Code fördert und Duplikate reduziert.
  • Unterstützt Polymorphismus : Da Unterklassen mithilfe von Super Methoden überschreiben und auf Felder ihrer übergeordneten Klassen zugreifen können, ist Polymorphismus möglich. Dies ermöglicht einen flexibleren und erweiterbaren Code.
  • Bietet Zugriff auf das Verhalten der übergeordneten Klasse : Unterklassen können über das Schlüsselwort super auf in ihren übergeordneten Klassen definierte Methoden und Felder zugreifen und diese verwenden, wodurch sie vorhandenes Verhalten nutzen können, ohne es erneut implementieren zu müssen.
  • Ermöglicht die Anpassung des Verhaltens: Durch das Überschreiben von Methoden und die Verwendung von super zum Aufrufen der übergeordneten Implementierung können Unterklassen das Verhalten ihrer übergeordneten Klassen anpassen und erweitern.
  • Erleichtert Abstraktion und Kapselung: Die Verwendung von Super fördert die Kapselung und Abstraktion, indem es Unterklassen ermöglicht, sich auf ihr Verhalten zu konzentrieren, während sie sich auf die übergeordnete Klasse verlassen, um Details auf niedrigerer Ebene zu verarbeiten.

Insgesamt ist das Schlüsselwort super ein Schlüsselmerkmal von Nachlass Und Polymorphismus in Java und bietet mehrere Vorteile für Entwickler, die wiederverwendbaren, erweiterbaren und gut organisierten Code schreiben möchten.

Wichtige Punkte, die Sie bei der Verwendung des Java-Super-Schlüsselworts beachten sollten

Hier sind einige wichtige Punkte, die Sie bei der Verwendung von Super-Schlüsselwörtern in Java beachten müssen:

  • Der Aufruf von super() muss die erste Anweisung in der Derived(Student)-Klasse sein Konstrukteur Denn wenn man darüber nachdenkt, macht es Sinn, dass die Oberklasse keine Kenntnis von irgendeiner Unterklasse hat, sodass jede Initialisierung, die sie durchführen muss, von der von der Unterklasse durchgeführten Initialisierung getrennt ist und möglicherweise eine Voraussetzung dafür ist. Daher muss die Ausführung zuerst abgeschlossen werden.
  • Wenn ein Konstruktor nicht explizit einen Superklassenkonstruktor aufruft, fügt der Java-Compiler automatisch einen Aufruf an den Konstruktor ohne Argumente der Superklasse ein. Wenn die Superklasse keinen Konstruktor ohne Argumente hat, erhalten Sie beim Kompilieren einen Fehler. Das Objekt tut über einen solchen Konstruktor verfügen. Wenn also das Objekt die einzige Oberklasse ist, gibt es kein Problem.

super-Schlüsselwort in Java

  • Wenn ein Unterklassenkonstruktor explizit oder implizit einen Konstruktor seiner Oberklasse aufruft, könnte man meinen, dass eine ganze Kette von Konstruktoren aufgerufen wird, bis hin zum Konstruktor von Object. Dies ist tatsächlich der Fall. Es wird genannt Konstruktorverkettung .

FAQs – Java-Super-Schlüsselwort

Q1. Was ist super () und das Schlüsselwort super in Java?

Super() ist ein Java-Schlüsselwort, das zum Aufrufen eines Superklassenkonstruktors verwendet wird. Super greift auf Superklassenmitglieder zu und verwaltet Vererbungshierarchien.

Q2. Welches ist die Superklasse von Java?

Der Objektklasse, auch Superklasse genannt steht an der Spitze der Klassenhierarchie in Javas java.lang-Paket . Jede Klasse, ob vordefiniert oder benutzerdefiniert, ist eine Unterklasse der Object-Klasse.

Q3. Warum ist Super in Java wichtig?

super ist in Java von wesentlicher Bedeutung, da es den Zugriff, die Initialisierung und die Verwaltung von Beziehungen zwischen Superklassen und Unterklassen erleichtert und dadurch die Wiederverwendbarkeit von Code fördert.