In diesem Tutorial lernen wir anhand eines Beispiels die Java-Vererbung und ihre Typen kennen.
Vererbung ist eine der Hauptfunktionen von OOP, mit der wir aus einer vorhandenen Klasse eine neue Klasse erstellen können.
Die neu erstellte Klasse wird als Unterklasse (untergeordnete oder abgeleitete Klasse) bezeichnet, und die vorhandene Klasse, von der die untergeordnete Klasse abgeleitet wird, wird als Oberklasse (übergeordnete oder Basisklasse) bezeichnet.
Das extends
Schlüsselwort wird verwendet, um die Vererbung in Java durchzuführen. Beispielsweise,
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 wird die Dog-Klasse erstellt, indem die Methoden und Felder von der Animal-Klasse geerbt werden.
Hier ist Hund die Unterklasse und Tier 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
Mein Name ist Rohu, den ich essen kann
Im obigen Beispiel haben wir einen Hund der Unterklasse von Animal der Oberklasse abgeleitet. Beachten Sie die Aussagen,
labrador.name = "Rohu"; labrador.eat();
Hier ist Labrador ein Objekt von Dog. Nennen Sie jedoch und eat()
sind die Mitglieder der Tierklasse.
Da Dog das Feld und die Methode von Animal erbt, können wir mit dem Objekt des Hundes auf das Feld und die Methode zugreifen.

ist-eine Beziehung
In Java ist Vererbung eine Is-A- Beziehung. Das heißt, wir verwenden die Vererbung nur, wenn eine is-a-Beziehung zwischen zwei Klassen besteht. Beispielsweise,
- Auto ist ein Fahrzeug
- Orange ist eine Frucht
- Der Chirurg ist ein Arzt
- Hund ist ein Tier
Hier kann Auto von Fahrzeug erben , Orange kann von Obst erben und so weiter.
Überschreiben der Methode in der Java-Vererbung
In Beispiel 1 sehen wir, dass das Objekt der Unterklasse auf die Methode der Oberklasse zugreifen kann.
Was passiert jedoch, wenn sowohl in der Oberklasse als auch in der Unterklasse dieselbe Methode 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: Überschreiben von Methoden in Java Inheritance
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
Ich esse Hundefutter, das ich bellen kann
Im obigen Beispiel ist das eat()
Verfahren sowohl in der Oberklasse Tier als auch in der Unterklasse Hund vorhanden.
Hier haben wir einen Objektlabrador von Dog erstellt.
Wenn wir jetzt eat()
mit dem Objekt Labrador aufrufen , wird die Methode in Dog aufgerufen. Dies liegt daran, dass die Methode in der abgeleiteten Klasse die Methode in der Basisklasse überschreibt.
Dies wird als Methodenüberschreibung bezeichnet. Weitere Informationen finden Sie unter Java Method Overriding.
Hinweis : Wir haben die @Override
Annotation verwendet, um dem Compiler mitzuteilen, dass wir eine Methode überschreiben. Die Anmerkung ist jedoch nicht obligatorisch. Weitere Informationen finden Sie unter Java Annotations.
Super Keyword in Java Inheritance
Zuvor haben wir gesehen, dass dieselbe Methode in der Unterklasse die Methode in der Oberklasse überschreibt.
In einer solchen Situation wird das super
Schlüsselwort verwendet, um die Methode der übergeordneten Klasse von der Methode der untergeordneten Klasse aufzurufen.
Beispiel 3: Super Keyword in Inheritance
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
Ich kann essen Ich esse Hundefutter Ich kann bellen
Im obigen Beispiel ist die eat()
Methode sowohl in der Basisklasse Animal als auch in der abgeleiteten Klasse Dog vorhanden. Beachten Sie die Aussage,
super.eat();
Hier wird das super
Schlüsselwort verwendet, um die eat()
in der Oberklasse vorhandene Methode aufzurufen .
Wir können das super
Schlüsselwort auch verwenden , um den Konstruktor der Oberklasse vom Konstruktor der Unterklasse aufzurufen. Um mehr zu erfahren, besuchen Sie Java Super Keyword .
geschützte Mitglieder in der Vererbung
Wenn in Java eine Klasse protected
Felder und Methoden enthält, kann auf diese Felder und Methoden über die Unterklasse der Klasse zugegriffen werden.
Example 4: protected Members in Inheritance
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(); ) )
Output
I am an animal. My name is Rocky
In the above example, we have created a class named Animal. The class includes a protected field: name and a method: display()
.
We have inherited the Dog class inherits Animal. Notice the statement,
labrador.name = "Rocky"; labrador.display();
Here, we are able to access the protected field and method of the superclass using the labrador object of the subclass.
Why use inheritance?
- The most important use of inheritance in Java is code reusability. The code that is present in the parent class can be directly used by the child class.
- Method overriding is also known as runtime polymorphism. Hence, we can achieve Polymorphism in Java with the help of inheritance.
Types of inheritance
There are five types of inheritance.
1. Single Inheritance
Bei der Einzelvererbung erstreckt sich eine einzelne Unterklasse von einer einzelnen Oberklasse. Beispielsweise,

2. Mehrstufige Vererbung
Bei der mehrstufigen Vererbung erstreckt sich eine Unterklasse von einer Oberklasse, und dann fungiert dieselbe Unterklasse als Oberklasse für eine andere Klasse. Beispielsweise,

3. Hierarchische Vererbung
Bei der hierarchischen Vererbung erstrecken sich mehrere Unterklassen von einer einzelnen Oberklasse. Beispielsweise,

4. Mehrfachvererbung
Bei der Mehrfachvererbung erstreckt sich eine einzelne Unterklasse von mehreren Oberklassen. Beispielsweise,

Hinweis : Java unterstützt keine Mehrfachvererbung. Über Schnittstellen können wir jedoch eine Mehrfachvererbung erreichen. Weitere Informationen finden Sie unter Java implementiert die Mehrfachvererbung.
5. Hybride Vererbung
Die hybride Vererbung ist eine Kombination aus zwei oder mehr Arten der Vererbung. Beispielsweise,

Hier haben wir hierarchische und Mehrfachvererbung kombiniert, um eine hybride Vererbung zu bilden.