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

Java - Überschreiben

Im vorigen Kapitel haben wir über Oberklassen und Unterklassen gesprochen. Wenn eine Klasse eine Methode von ihrer Oberklasse erbt, besteht die Möglichkeit, die Methode zu überschreiben, sofern sie nicht als final markiert ist.

Der Vorteil des Überschreibens ist:Möglichkeit, ein Verhalten zu definieren, das für den Unterklassentyp spezifisch ist, was bedeutet, dass eine Unterklasse eine Methode der übergeordneten Klasse basierend auf ihren Anforderungen implementieren kann.

Objektorientiert bedeutet Überschreiben, die Funktionalität einer bestehenden Methode zu überschreiben.

Beispiel

Sehen wir uns ein Beispiel an.

Live-Demo
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Animals can move
Dogs can walk and run

Im obigen Beispiel sieht man das, obwohl b ist ein Tiertyp, der die Move-Methode in der Dog-Klasse ausführt. Der Grund dafür ist:Zur Kompilierzeit wird auf den Referenztyp geprüft. Zur Laufzeit findet JVM jedoch den Objekttyp heraus und führt die Methode aus, die zu diesem bestimmten Objekt gehört.

Daher wird das Programm im obigen Beispiel ordnungsgemäß kompiliert, da die Klasse Animal die Methode move hat. Dann führt es zur Laufzeit die für dieses Objekt spezifische Methode aus.

Betrachten Sie das folgende Beispiel −

Beispiel

Live-Demo
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
   public void bark() {
      System.out.println("Dogs can bark");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
      b.bark();
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

TestDog.java:26: error: cannot find symbol
      b.bark();
       ^
  symbol:   method bark()
  location: variable b of type Animal
1 error

Dieses Programm wird einen Kompilierungsfehler ausgeben, da der Referenztyp Animal von b keine Methode namens bark hat.

Regeln für das Überschreiben von Methoden

Mit dem Super-Keyword

Beim Aufrufen einer Superklassenversion einer überschriebenen Methode wird die super Schlüsselwort wird verwendet.

Beispiel

Live-Demo
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      super.move();   // invokes the super class method
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal b = new Dog();   // Animal reference but Dog object
      b.move();   // runs the method in Dog class
   }
}

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Animals can move
Dogs can walk and run

Java

  1. Java-Operatoren
  2. Java-Schnittstelle
  3. String Length() Methode in Java:So finden Sie mit Beispiel
  4. Java String indexOf() Methode mit Substring &Beispielen
  5. Java String charAt() Methode mit Beispiel
  6. Java-String-compareTo()-Methode:Verwendung mit Beispielen
  7. Java-String enthält()-Methode | Überprüfen Sie die Teilzeichenfolge mit Beispiel
  8. Java-String-EndsWith()-Methode mit Beispiel
  9. Java String replace(), replaceAll() und replaceFirst() Methode
  10. Statische Variable in Java:Was ist statischer Block &Methode [Beispiel]