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

Überschreiben der Java-Methode

Überschreiben der Java-Methode

In diesem Tutorial lernen wir anhand von Beispielen das Überschreiben von Methoden in Java kennen.

Im letzten Tutorial haben wir etwas über Vererbung gelernt. Vererbung ist eine OOP-Eigenschaft, die es uns ermöglicht, eine neue Klasse (Unterklasse) von einer bestehenden Klasse (Oberklasse) abzuleiten. Die Unterklasse erbt die Attribute und Methoden der Oberklasse.

Wenn nun dieselbe Methode sowohl in der Oberklasse als auch in der Unterklasse definiert ist, überschreibt die Methode der Unterklasse class die Methode der Oberklasse. Dies wird als Methodenüberschreibung bezeichnet.


Beispiel 1:Methodenüberschreibung

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   @Override
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Ausgabe :

I am a dog.

Im obigen Programm ist der displayInfo() -Methode ist sowohl in Animal vorhanden Oberklasse und der Hund Unterklasse.

Wenn wir displayInfo() anrufen mit d1 Objekt (Objekt der Unterklasse), die Methode innerhalb der Unterklasse Dog wird genannt. Die displayInfo() Methode der Unterklasse überschreibt dieselbe Methode der Oberklasse.

Beachten Sie die Verwendung von @Override Anmerkung in unserem Beispiel. In Java sind Annotationen die Metadaten, die wir verwendet haben, um dem Compiler Informationen bereitzustellen. Hier die @Override Annotation gibt dem Compiler an, dass die Methode nach dieser Annotation die Methode der Oberklasse überschreibt.

Es ist nicht zwingend erforderlich, @Override zu verwenden . Wenn wir dies jedoch verwenden, sollte die Methode allen Regeln des Überschreibens folgen. Andernfalls generiert der Compiler einen Fehler.


Java-Überschreibungsregeln


super-Schlüsselwort in Java-Überschreibung

Eine häufig gestellte Frage beim Überschreiben in Java ist:

Können wir nach dem Überschreiben auf die Methode der Oberklasse zugreifen?

Nun, die Antwort ist Ja . Um von der Unterklasse auf die Methode der Oberklasse zuzugreifen, verwenden wir den super Schlüsselwort.

Beispiel 2:Verwendung des Super-Keywords

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      super.displayInfo();
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Ausgabe :

I am an animal.
I am a dog.

Im obigen Beispiel die Unterklasse Dog überschreibt die Methode displayInfo() der Oberklasse Animal .

Wenn wir die Methode displayInfo() aufrufen mit d1 Objekt des Hundes Unterklasse, die Methode innerhalb des Dog Unterklasse wird aufgerufen; die Methode innerhalb der Oberklasse wird nicht aufgerufen.

Innerhalb von displayInfo() des Hundes Unterklasse haben wir super.displayInfo() verwendet um displayInfo() anzurufen der Oberklasse.


Es ist wichtig zu beachten, dass Konstruktoren in Java nicht vererbt werden. Daher gibt es in Java keine Konstruktorüberschreibung.

Wir können jedoch den Konstruktor der Oberklasse von ihren Unterklassen aufrufen. Dafür verwenden wir super() . Um mehr zu erfahren, besuchen Sie Java super keyword.


Zugriffsspezifizierer beim Überschreiben von Methoden

Dieselbe Methode, die in der Oberklasse und ihren Unterklassen deklariert ist, kann unterschiedliche Zugriffsbezeichner haben. Es gibt jedoch eine Einschränkung.

Wir können diese Zugriffsbezeichner nur in Unterklassen verwenden, die einen größeren Zugriff bieten als der Zugriffsbezeichner der Oberklasse. Zum Beispiel

Angenommen, eine Methode myClass() in der Oberklasse ist protected deklariert . Dann dieselbe Methode myClass() in der Unterklasse kann entweder public sein oder protected , aber nicht private .

Beispiel 3:Zugriffsspezifizierer beim Überschreiben

class Animal {
   protected void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Ausgabe :

I am a dog.

Im obigen Beispiel die Unterklasse Dog überschreibt die Methode displayInfo() der Oberklasse Animal .

Wann immer wir displayInfo() anrufen mit d1 (Objekt der Unterklasse), wird die Methode innerhalb der Unterklasse aufgerufen.

Beachten Sie, dass displayInfo() wird als protected deklariert im Tier Oberklasse. Die gleiche Methode hat den public Zugriffsbezeichner im Dog Unterklasse. Dies ist möglich, weil der public bietet größeren Zugriff als protected .


Abstrakte Methoden überschreiben

In Java werden abstrakte Klassen als Oberklasse anderer Klassen erstellt. Und wenn eine Klasse eine abstrakte Methode enthält, muss sie zwingend überschrieben werden.

Wir werden in späteren Tutorials mehr über abstrakte Klassen und das Überschreiben abstrakter Methoden erfahren.


Java

  1. Java-Operatoren
  2. Java-Versuch-mit-Ressourcen
  3. Java-Anmerkungen
  4. Java-Anmerkungstypen
  5. String Length() Methode in Java:So finden Sie mit Beispiel
  6. Java String indexOf() Methode mit Substring &Beispielen
  7. Java String charAt() Methode mit Beispiel
  8. Java-String-compareTo()-Methode:Verwendung mit Beispielen
  9. Java-String enthält()-Methode | Überprüfen Sie die Teilzeichenfolge mit Beispiel
  10. Java-String-EndsWith()-Methode mit Beispiel