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?
- Für Methodenüberschreibung (Also Laufzeitpolymorphismus Kann erreicht werden).
- Für die Wiederverwendbarkeit von Code.
Begriffe, die in der Vererbung verwendet werden
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
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.
Hinweis: Mehrfachvererbung durch Klassen wird in Java nicht unterstützt.
Wenn eine Klasse mehrere Klassen erbt, spricht man von Mehrfachvererbung. Zum Beispiel:
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