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

Java-Vererbung

Java-Vererbung

In diesem Tutorial lernen wir die Java-Vererbung und ihre Typen anhand von Beispielen kennen.

Vererbung ist eine der Schlüsselfunktionen von OOP, die es uns ermöglicht, eine neue Klasse aus einer bestehenden Klasse zu erstellen.

Die neu erstellte Klasse wird als Unterklasse bezeichnet (untergeordnete oder abgeleitete Klasse) und die vorhandene Klasse, von der die untergeordnete Klasse abgeleitet ist, wird als Superklasse bezeichnet (Eltern- oder Basisklasse).

Der extends Das Schlüsselwort wird verwendet, um die Vererbung in Java durchzuführen. Zum Beispiel

class Animal {
  // methods and fields
}

// use of extends keyword
// to perform inheritance
class Dog extends Animal {

  // methods and fields of Animal
  // methods and fields of Dog
}

Im obigen Beispiel der Hund Die Klasse wird erstellt, indem die Methoden und Felder von Animal geerbt werden Klasse.

Hier, Hund ist die Unterklasse und Animal ist die Oberklasse.


Beispiel 1:Java-Vererbung

class Animal {

  // field and method of the parent class
  String name;
  public void eat() {
    System.out.println("I can eat");
  }
}

// inherit from Animal
class Dog extends Animal {

  // new method in subclass
  public void display() {
    System.out.println("My name is " + name);
  }
}

class Main {
  public static void main(String[] args) {

    // create an object of the subclass
    Dog labrador = new Dog();

    // access field of superclass
    labrador.name = "Rohu";
    labrador.display();

    // call method of superclass
    // using object of subclass
    labrador.eat();

  }
}

Ausgabe

My name is Rohu
I can eat

Im obigen Beispiel haben wir eine Unterklasse Dog abgeleitet aus der Oberklasse Animal . Beachten Sie die Anweisungen,

labrador.name = "Rohu";

labrador.eat();

Hier, Labrador ist ein Objekt von Dog . Jedoch name und eat() sind die Mitglieder des Animal Klasse.

Seit Hund erbt das Feld und die Methode von Animal können wir über das Objekt von Dog auf das Feld und die Methode zugreifen .


ist-eine Beziehung

In Java ist Vererbung ein ist-ein Beziehung. Das heißt, wir verwenden Vererbung nur dann, wenn es eine Beziehung zwischen zwei Klassen gibt. Zum Beispiel

  • Auto ist ein Fahrzeug
  • Orange ist eine Frucht
  • Chirurg ist Arzt
  • Hund ist ein Tier

Hier, Auto kann von Vehicle erben , Orange kann von Obst erben , und so weiter.


Methodenüberschreibung bei der Java-Vererbung

In Beispiel 1 , sehen wir, dass das Objekt der Unterklasse auf die Methode der Oberklasse zugreifen kann.

Was passiert jedoch, wenn dieselbe Methode sowohl in der Oberklasse als auch in der Unterklasse vorhanden ist?

In diesem Fall überschreibt die Methode in der Unterklasse die Methode in der Oberklasse. Dieses Konzept wird in Java als Methodenüberschreibung bezeichnet.

Beispiel 2:Methodenüberschreibung in Java-Vererbung

class Animal {

  // method in the superclass
  public void eat() {
    System.out.println("I can eat");
  }
}

// Dog inherits Animal
class Dog extends Animal {

  // overriding the eat() method
  @Override
  public void eat() {
    System.out.println("I eat dog food");
  }

  // new method in subclass
  public void bark() {
    System.out.println("I can bark");
  }
}

class Main {
  public static void main(String[] args) {

    // create an object of the subclass
    Dog labrador = new Dog();

    // call the eat() method
    labrador.eat();
    labrador.bark();
  }
}

Ausgabe

I eat dog food
I can bark

Im obigen Beispiel die eat() -Methode ist sowohl in der Oberklasse Animal vorhanden und die Unterklasse Dog .

Hier haben wir ein Objekt Labrador erstellt von Hund .

Wenn wir jetzt eat() aufrufen mit dem Objekt labrador , die Methode innerhalb von Dog wird genannt. Dies liegt daran, dass die Methode innerhalb der abgeleiteten Klasse die Methode innerhalb der Basisklasse überschreibt.

Dies wird als Methodenüberschreibung bezeichnet. Weitere Informationen finden Sie unter Überschreiben von Java-Methoden.

Hinweis :Wir haben den @Override verwendet Anmerkung, um dem Compiler mitzuteilen, dass wir eine Methode überschreiben. Die Anmerkung ist jedoch nicht obligatorisch. Weitere Informationen finden Sie unter Java-Anmerkungen.


super-Schlüsselwort in der Java-Vererbung

Zuvor haben wir gesehen, dass dieselbe Methode in der Unterklasse die Methode in der Oberklasse überschreibt.

In einer solchen Situation wird der super Schlüsselwort wird verwendet, um die Methode der übergeordneten Klasse von der Methode der untergeordneten Klasse aufzurufen.

Beispiel 3:Schlüsselwort super in Vererbung

class Animal {

  // method in the superclass
  public void eat() {
    System.out.println("I can eat");
  }
}

// Dog inherits Animal
class Dog extends Animal {

  // overriding the eat() method
  @Override
  public void eat() {

    // call method of superclass
    super.eat();
    System.out.println("I eat dog food");
  }

  // new method in subclass
  public void bark() {
    System.out.println("I can bark");
  }
}

class Main {
  public static void main(String[] args) {

    // create an object of the subclass
    Dog labrador = new Dog();

    // call the eat() method
    labrador.eat();
    labrador.bark();
  }
}

Ausgabe

I can eat
I eat dog food
I can bark 

Im obigen Beispiel der eat() -Methode ist sowohl in der Basisklasse Animal vorhanden und die abgeleitete Klasse Dog . Beachten Sie die Anweisung,

super.eat();

Hier die super Schlüsselwort wird verwendet, um eat() aufzurufen Methode, die in der Oberklasse vorhanden ist.

Wir können auch den super verwenden Schlüsselwort, um den Konstruktor der Oberklasse vom Konstruktor der Unterklasse aufzurufen. Weitere Informationen finden Sie unter Java Super Keyword.


geschützte Mitglieder in Vererbung

In Java, wenn eine Klasse protected enthält Felder und Methoden, dann sind diese Felder und Methoden von der Unterklasse der Klasse aus zugänglich.

Beispiel 4:geschützte Mitglieder in Vererbung

class Animal {
  protected String name;

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

class Dog extends Animal {

  public void getInfo() {
    System.out.println("My name is " + name);
  }
}

class Main {
  public static void main(String[] args) {

    // create an object of the subclass
    Dog labrador = new Dog();

    // access protected field and method
    // using the object of subclass
    labrador.name = "Rocky";
    labrador.display();

    labrador.getInfo();
  }
}

Ausgabe

I am an animal.
My name is Rocky

Im obigen Beispiel haben wir eine Klasse namens Animal erstellt. Die Klasse enthält ein geschütztes Feld:name und eine Methode:display() .

Wir haben den Hund geerbt Klasse erbt Animal . Beachten Sie die Anweisung,

labrador.name = "Rocky";
labrador.display();

Hier können wir mit dem Labrador auf das geschützte Feld und die Methode der Oberklasse zugreifen Objekt der Unterklasse.


Warum Vererbung verwenden?

  • Die wichtigste Anwendung der Vererbung in Java ist die Wiederverwendbarkeit von Code. Der Code, der in der übergeordneten Klasse vorhanden ist, kann direkt von der untergeordneten Klasse verwendet werden.
  • Das Überschreiben von Methoden wird auch als Laufzeitpolymorphismus bezeichnet. Daher können wir Polymorphismus in Java mit Hilfe von Vererbung erreichen.

Arten der Vererbung

Es gibt fünf Arten der Vererbung.

1. Einfache Vererbung

Bei der Einfachvererbung geht eine einzelne Unterklasse von einer einzelnen Oberklasse aus. Zum Beispiel


2. Vererbung auf mehreren Ebenen

Bei der mehrstufigen Vererbung geht eine Unterklasse von einer Oberklasse aus, und dann fungiert dieselbe Unterklasse als Oberklasse für eine andere Klasse. Zum Beispiel


3. Hierarchische Vererbung

Bei der hierarchischen Vererbung gehen mehrere Unterklassen von einer einzigen Oberklasse aus. Zum Beispiel


4. Mehrfachvererbung

Bei der Mehrfachvererbung erstreckt sich eine einzelne Unterklasse von mehreren Oberklassen. Zum Beispiel

Hinweis :Java unterstützt keine Mehrfachvererbung. Über Schnittstellen können wir jedoch eine Mehrfachvererbung erreichen. Weitere Informationen finden Sie unter Java implementiert Mehrfachvererbung.


5. Hybride Vererbung

Die hybride Vererbung ist eine Kombination aus zwei oder mehr Vererbungsarten. Zum Beispiel

Hier haben wir hierarchische und Mehrfachvererbung zu einer hybriden Vererbung kombiniert.


Java

  1. Letztes Java-Schlüsselwort
  2. Java-Instanz des Operators
  3. Verschachtelte statische Java-Klasse
  4. Anonyme Java-Klasse
  5. Java-Singleton-Klasse
  6. Java-Reflexion
  7. Java ObjectOutputStream-Klasse
  8. Java-Generika
  9. Java-Dateiklasse
  10. C# - Vererbung