logo

Vererbung in Java

  1. Nachlass
  2. Arten der Vererbung
  3. Warum ist in Java bei Klassen keine Mehrfachvererbung möglich?

Vererbung in Java ist ein Mechanismus, bei dem ein Objekt alle Eigenschaften und Verhaltensweisen eines übergeordneten Objekts übernimmt. Es ist ein wichtiger Teil davon Hoppla (Objektorientiertes Programmiersystem).

Die Idee hinter der Vererbung in Java besteht darin, dass Sie neue erstellen können Klassen die auf vorhandenen Klassen aufbauen. Wenn Sie von einer vorhandenen Klasse erben, können Sie Methoden und Felder der übergeordneten Klasse wiederverwenden. Darüber hinaus können Sie Ihrer aktuellen Klasse auch neue Methoden und Felder hinzufügen.

Vererbung stellt die dar IS-A-Beziehung was auch als a bekannt ist Eltern-Kind Beziehung.

Warum Vererbung in Java verwenden?

Begriffe, die in der Vererbung verwendet werden

    Klasse:Eine Klasse ist eine Gruppe von Objekten, die gemeinsame Eigenschaften haben. Es handelt sich um eine Vorlage oder Blaupause, aus der Objekte erstellt werden.Unterklasse/Unterklasse:Unterklasse ist eine Klasse, die die andere Klasse erbt. Sie wird auch abgeleitete Klasse, erweiterte Klasse oder untergeordnete Klasse genannt.Superklasse/Elternklasse:Superklasse ist die Klasse, von der eine Unterklasse die Funktionen erbt. Sie wird auch Basisklasse oder übergeordnete Klasse genannt.Wiederverwendbarkeit:Wie der Name schon sagt, ist Wiederverwendbarkeit ein Mechanismus, der es Ihnen ermöglicht, die Felder und Methoden der vorhandenen Klasse wiederzuverwenden, wenn Sie eine neue Klasse erstellen. Sie können dieselben Felder und Methoden verwenden, die bereits in der vorherigen Klasse definiert wurden.

Die Syntax der Java-Vererbung

 class Subclass-name extends Superclass-name { //methods and fields } 

Der erweitert das Schlüsselwort zeigt an, dass Sie eine neue Klasse erstellen, die von einer vorhandenen Klasse abgeleitet ist. Die Bedeutung von „erweitert“ besteht darin, die Funktionalität zu erhöhen.

Schlaf in js

In der Java-Terminologie wird eine geerbte Klasse als übergeordnete Klasse oder Oberklasse bezeichnet, und die neue Klasse wird als untergeordnete Klasse oder Unterklasse bezeichnet.


Beispiel für eine Java-Vererbung

Vererbung in Java

Wie in der obigen Abbildung dargestellt, ist Programmer die Unterklasse und Employee die Oberklasse. Die Beziehung zwischen den beiden Klassen ist Programmierer IS-A-Mitarbeiter . Das bedeutet, dass der Programmierer eine Art Mitarbeiter ist.

Wolf gegen Fuchs
 class Employee{ float salary=40000; } class Programmer extends Employee{ int bonus=10000; public static void main(String args[]){ Programmer p=new Programmer(); System.out.println('Programmer salary is:'+p.salary); System.out.println('Bonus of Programmer is:'+p.bonus); } } 
Testen Sie es jetzt
 Programmer salary is:40000.0 Bonus of programmer is:10000 

Im obigen Beispiel kann das Programmiererobjekt sowohl auf das Feld der eigenen Klasse als auch auf das Feld der Mitarbeiterklasse zugreifen, d. h. auf die Wiederverwendbarkeit des Codes.


Arten der Vererbung in Java

Basierend auf der Klasse kann es in Java drei Arten der Vererbung geben: einstufig, mehrstufig und hierarchisch.

Bei der Java-Programmierung werden Mehrfach- und Hybridvererbung nur über die Schnittstelle unterstützt. Über Schnittstellen erfahren wir später.

Arten der Vererbung in Java

Hinweis: Mehrfachvererbung durch Klassen wird in Java nicht unterstützt.

Wenn eine Klasse mehrere Klassen erbt, spricht man von Mehrfachvererbung. Zum Beispiel:

Mehrfachvererbung in Java

Beispiel für eine Einzelvererbung

Wenn eine Klasse eine andere Klasse erbt, wird dies als a bezeichnet Einzelvererbung . Im unten angegebenen Beispiel erbt die Klasse „Hund“ die Klasse „Tier“, sodass es eine Einzelvererbung gibt.

Datei: TestInheritance.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class TestInheritance{ public static void main(String args[]){ Dog d=new Dog(); d.bark(); d.eat(); }} 

Ausgabe:

Anhängen einer Zeichenfolge in Java
 barking... eating... 

Beispiel für eine mehrstufige Vererbung

Wenn es eine Vererbungskette gibt, wird sie als bezeichnet mehrstufige Vererbung . Wie Sie im folgenden Beispiel sehen können, erbt die Klasse BabyDog die Klasse Dog, die wiederum die Klasse Animal erbt, sodass es zu einer mehrstufigen Vererbung kommt.

Datei: TestInheritance2.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class BabyDog extends Dog{ void weep(){System.out.println('weeping...');} } class TestInheritance2{ public static void main(String args[]){ BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); }} 

Ausgabe:

CSS-Umbruchtext
 weeping... barking... eating... 

Beispiel für hierarchische Vererbung

Wenn zwei oder mehr Klassen eine einzelne Klasse erben, spricht man von „ hierarchische Vererbung . Im unten angegebenen Beispiel erben die Klassen „Hund“ und „Katze“ die Klasse „Tier“, sodass eine hierarchische Vererbung vorliegt.

Datei: TestInheritance3.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class Cat extends Animal{ void meow(){System.out.println('meowing...');} } class TestInheritance3{ public static void main(String args[]){ Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error }} 

Ausgabe:

 meowing... eating... 

F) Warum wird Mehrfachvererbung in Java nicht unterstützt?

Um die Komplexität zu reduzieren und die Sprache zu vereinfachen, wird Mehrfachvererbung in Java nicht unterstützt.

Stellen Sie sich ein Szenario vor, in dem A, B und C drei Klassen sind. Die C-Klasse erbt die Klassen A und B. Wenn die Klassen A und B dieselbe Methode haben und Sie sie vom untergeordneten Klassenobjekt aufrufen, besteht Unklarheit darüber, ob die Methode der Klasse A oder B aufgerufen werden soll.

Da Kompilierzeitfehler besser sind als Laufzeitfehler, rendert Java Kompilierzeitfehler, wenn Sie zwei Klassen erben. Unabhängig davon, ob Sie dieselbe oder eine andere Methode verwenden, tritt beim Kompilieren ein Fehler auf.

 class A{ void msg(){System.out.println('Hello');} } class B{ void msg(){System.out.println('Welcome');} } class C extends A,B{//suppose if it were public static void main(String args[]){ C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } 
Testen Sie es jetzt
 Compile Time Error