Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Javas super-Schlüsselwort meistern: Fortgeschrittene Nutzung & praktische Beispiele

Javas super-Schlüsselwort meistern: Fortgeschrittene Nutzung & praktische Beispiele

Entdecken Sie, wie das super-Schlüsselwort mächtige Vererbungsfähigkeiten in Java freischaltet, mit klaren Beispielen und Expertenguidance.

Das super-Schlüsselwort ist ein Eckpfeiler von Javas Vererbungsmodell und ermöglicht Unterklassen den Zugriff auf Member – Felder, Methoden und Konstruktoren – ihrer direkten Oberklasse. Das Verständnis seiner Nuancen ist essenziell für sauberen, wartbaren Code.


Primäre Verwendungen von super

  1. Aufruf überschriebener Oberklassen-Methoden.
  2. Zugriff auf Oberklassen-Felder, wenn sie von Unterklassen-Feldern verdeckt werden.
  3. Expliziter Aufruf eines Oberklassen-Konstruktors aus einem Unterklassen-Konstruktor.

Lassen Sie uns jedes Szenario mit Code-Beispielen durchgehen.


1. Aufruf einer überschriebenen Oberklassen-Methode

Wenn eine Unterklasse eine Methode überschreibt, bleibt die Oberklassen-Version via super.methodeName() zugänglich. Dies ist kritisch, um Verhalten zu erweitern, ohne die ursprüngliche Funktionalität zu verlieren.

Beispiel: Methodenüberschreibung und super

class Tier { public void anzeigen() { System.out.println("Ich bin ein Tier"); } } class Hund extends Tier { @Override public void anzeigen() { System.out.println("Ich bin ein Hund"); } public void nachrichtDrucken() { anzeigen(); // Ruft Hund.anzeigen() auf super.anzeigen(); // Ruft Tier.anzeigen() auf } } public class Haupt { public static void main(String[] args) { Hund hund = new Hund(); hund.nachrichtDrucken(); } } 

Ausgabe:

Ich bin ein Hund Ich bin ein Tier 

Die Verwendung von super.anzeigen() stellt sicher, dass die Oberklassen-Implementierung ausgeführt wird, was nützlich ist, wenn Funktionalität erweitert statt ersetzt wird.


2. Zugriff auf verdeckte Oberklassen-Felder

Wenn sowohl Ober- als auch Unterklasse ein Feld mit demselben Namen deklarieren, verdeckt das Unterklassen-Feld das Oberklassen-Feld. super.feldName ermöglicht den Zugriff auf das ursprüngliche Feld.

Beispiel: Feld-Verdeckung

class Tier { protected String typ = "Tier"; } class Hund extends Tier { public String typ = "Säugetier"; public void typDrucken() { System.out.println("Ich bin ein " + typ); // Hund.typ System.out.println("Ich bin ein " + super.typ); // Tier.typ } } public class Haupt { public static void main(String[] args) { Hund hund = new Hund(); hund.typDrucken(); } } 

Ausgabe:

Ich bin ein Säugetier Ich bin ein Tier 

3. super() zum Aufruf eines Oberklassen-Konstruktors verwenden

Konstruktoren werden nicht vererbt, aber eine Unterklasse kann einen Oberklassen-Konstruktor mit super() aufrufen. Dies muss die erste Anweisung im Unterklassen-Konstruktor sein und ist erforderlich, wenn die Oberklasse keinen No-Arg-Konstruktor hat oder Argumente übergeben werden müssen.

Beispiel 1: Standard-Konstruktor-Aufruf

class Tier { Tier() { System.out.println("Ich bin ein Tier"); } } class Hund extends Tier { Hund() { super(); System.out.println("Ich bin ein Hund"); } } public class Haupt { public static void main(String[] args) { new Hund(); } } 

Ausgabe:

Ich bin ein Tier Ich bin ein Hund 

Beispiel 2: Parametrisierter Konstruktor-Aufruf

class Tier { Tier(String typ) { System.out.println("Typ: " + typ); } } class Hund extends Tier { Hund() { super("Tier"); System.out.println("Ich bin ein Hund"); } } public class Haupt { public static void main(String[] args) { new Hund(); } } 

Ausgabe:

Typ: Tier Ich bin ein Hund 

Im parametrisierten Fall kann der Compiler keinen Nicht-Standard-Konstruktor automatisch aufrufen, daher ist super(Argumente) zwingend.


Das Beherrschen des super-Schlüsselworts befähigt Sie, robuste Vererbungshierarchien zu schreiben, sodass überschriebene Logik zugänglich bleibt und Konstruktoren ordnungsgemäß initialisiert werden. Diese Techniken sind essenziell für skalierbare Java-Anwendungen und entsprechen den von Branchenexperten empfohlenen Best Practices.

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList