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

Methodenüberschreibung in Java meistern

Methodenüberschreibung in Java meistern

Erkunden Sie Javas Methodenüberschreibung mit praktischen Beispielen, wichtigen Regeln und dem mächtigen super-Schlüsselwort.

Letzte Woche haben wir Vererbung behandelt, das Kern-OOP-Feature, das es einer Unterklasse erlaubt, Eigenschaften und Verhalten von einer Oberklasse zu erben. Jetzt tauchen wir in Methodenüberschreibung ein – wenn eine Unterklasse ihre eigene Implementierung einer Methode bereitstellt, die bereits in ihrer Elternklasse definiert ist.

Beispiel 1: Grundlegende Methodenüberschreibung

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

Ausgabe:

Ich bin ein Hund. 

In diesem Snippet deklarieren sowohl Tier als auch Hund infoAnzeigen(). Wenn die Hund-Instanz sie aufruft, läuft die Unterklassen-Implementierung, was Überschreibung demonstriert.

Beachten Sie die @Override-Annotation. Sie teilt dem Compiler mit, dass die Methode die Oberklassen-Version ersetzen soll; wenn die Signaturen nicht übereinstimmen, wirft der Compiler einen Fehler. Zwar nicht zwingend, ist es eine Best Practice, die vor versehentlichen Fehlern schützt.

Methodenüberschreibung in Java meistern

Java-Überschreibungsregeln

Mit super eine Oberklassen-Methode aufrufen

Können wir nach dem Überschreiben noch die Elternmethode aufrufen? Absolut – nutzen Sie das super-Schlüsselwort.

Beispiel 2: super nutzen

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

Ausgabe:

Ich bin ein Tier. Ich bin ein Hund. 

Hier ruft Hund zuerst Tier.infoAnzeigen() via super auf, dann fügt es seine eigene Nachricht hinzu.

Denken Sie daran: Konstruktoren werden nicht vererbt, es gibt also kein „Konstruktor-Überschreiben“. Eine Unterklasse kann jedoch einen Oberklassen-Konstruktor mit super() aufrufen – siehe den Java super-Schlüsselwort-Leitfaden.

Zugriffsebenen beim Überschreiben

Überschriebene Methoden können in der Sichtbarkeit variieren, aber nur in Richtung einer Erweiterung des Zugriffs.

Wenn eine Oberklassen-Methode protected ist, darf eine Unterklasse sie als protected oder public deklarieren, aber nicht als private.

Beispiel 3: Sichtbarkeit ändern

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

Ausgabe:

Ich bin ein Hund. 

Da public breiteren Zugriff bietet als protected, ist die Überschreibung gültig.

Abstrakte Methoden überschreiben

Abstrakte Klassen deklarieren oft Methoden ohne Körper. Jede konkrete Unterklasse muss eine Implementierung bereitstellen; andernfalls markiert der Compiler einen Fehler. Wir werden abstrakte Klassen in einem zukünftigen Tutorial vertiefen.

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  3. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  4. Java Annotation Types: Umfassender Leitfaden zu vordefinierten, benutzerdefinierten und Meta-Annotations
  5. Java String length() Methode: String-Länge ermitteln (Beispiel)
  6. Java String.indexOf() meistern: Substrings finden & praktische Beispiele
  7. Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
  8. Java String compareTo() meistern: Syntax, Anwendungsfälle und praktische Beispiele
  9. Java String.contains() Methode: Substrings prüfen – praktische Beispiele
  10. Java String.endsWith(): String-Suffixe prüfen mit Beispielen