Vererbung in Java (mit Beispiel)
โก Intelligente Zusammenfassung
Vererbung in Java `extends` ist ein Mechanismus, mit dem eine Klasse die Felder und Methoden einer anderen Klasse รผber das Schlรผsselwort `extends` erwirbt. Er fรถrdert die Wiederverwendbarkeit von Code und modelliert eine โIst-einโ-Beziehung zwischen einer Oberklasse und ihren Unterklassen.

Was ist Vererbung?
Erbe ist ein Mechanismus, bei dem eine Klasse das Eigentum einer anderen Klasse erwirbt. Beispielsweise erbt ein Kind die Eigenschaften seiner Eltern. Durch Vererbung kรถnnen wir die Felder und Methoden der vorhandenen Klasse wiederverwenden. Daher erleichtert die Vererbung die Wiederverwendbarkeit und ist ein wichtiges Konzept von OOPs.
Was ist Vererbung in Java?
Java Erbe ist ein Mechanismus, bei dem eine Klasse die Eigenschaft einer anderen Klasse erwirbt. JavaWenn zwischen zwei Klassen eine โIst-Aโ-Beziehung besteht, verwenden wir Vererbung. Die รผbergeordnete Klasse wird als Superklasse bezeichnet und die geerbte Klasse als Unterklasse. Das Schlรผsselwort extends wird von der Unterklasse verwendet, um die Funktionen der Superklasse zu erben. Vererbung ist wichtig, da sie zur Wiederverwendbarkeit von Code fรผhrt.
Java Vererbungssyntax:
class subClass extends superClass { //methods and fields }
Arten der Vererbung in Java
Hier sind die verschiedenen Arten der Vererbung in Java:
- Einzelvererbung
- Mehrfachvererbung
- Mehrstufige Vererbung
- Hierarchische Vererbung
- Hybride Vererbung
1. Einfache Vererbung:
Bei der Einzelvererbung erweitert eine Klasse eine andere Klasse (nur eine Klasse).

Im obigen Diagramm erweitert Klasse B nur Klasse A. Klasse A ist eine Superklasse und Klasse B ist eine Unterklasse.
2. Mehrfachvererbung:
Mehrfachvererbung ist eine der Vererbungsarten in Java Typen, bei denen eine Klasse mehr als eine Klasse erweitert. Java unterstรผtzt keine Mehrfachvererbung.
Gemรคร dem obigen Diagramm erweitert Klasse C sowohl Klasse A als auch Klasse B.
3. Mehrstufige Vererbung:
Bei der mehrstufigen Vererbung kann eine Klasse von einer abgeleiteten Klasse erben. Daher wird die abgeleitete Klasse zur Basisklasse fรผr die neue Klasse.
Wie im Diagramm gezeigt, ist Klasse C eine Unterklasse von B und B ist eine Unterklasse von Klasse A.
4. Hierarchische Vererbung:
Bei der hierarchischen Vererbung wird eine Klasse von vielen Unterklassen geerbt.
Wie im obigen Beispiel erben die Klassen B, C und D dieselbe Klasse A.
5. Hybride Vererbung:
Die hybride Vererbung ist eine der Vererbungsarten in Java Dies ist eine Kombination aus Einfach- und Mehrfachvererbung.
Gemรคร dem obigen Beispiel werden alle รถffentlichen und geschรผtzten Mitglieder der Klasse A in die Klasse D vererbt, zunรคchst รผber Klasse B und zweitens รผber Klasse C.
Hinweis: Java unterstรผtzt keine hybride/Mehrfachvererbung
Vererbung in Java Beispiel
Hier ist ein Beispiel fรผr Vererbung in Java:
class Doctor { void Doctor_Details() { System.out.println("Doctor Details..."); } } class Surgeon extends Doctor { void Surgeon_Details() { System.out.println("Surgen Detail..."); } } public class Hospital { public static void main(String args[]) { Surgeon s = new Surgeon(); s.Doctor_Details(); s.Surgeon_Details(); } }
Super-Keyword
Das Schlรผsselwort super ist dem Schlรผsselwort โthisโ รคhnlich. Das Schlรผsselwort super kann verwendet werden, um auf alle Datenelemente oder Methoden der รผbergeordneten Klasse zuzugreifen. Das Schlรผsselwort super kann verwendet werden bei Variable, Methoden- und Konstruktorebene.
Syntax:
super.<method-name>();
รberprรผfen Sie auch: - dieses Keyword in Java: Was ist und wie wird es mit Beispiel verwendet
Lernen Sie die Vererbung in OOPs anhand eines Beispiels
Betrachten Sie die gleiche Bankanwendung aus dem vorheriges Beispiel.
Wir sollen zwei verschiedene Kontotypen erรถffnen, eines zum Sparen und eines zum Girokonto (auch Girokonto genannt).
Lassen Sie uns vergleichen und untersuchen, wie wir die Codierung von einem aus angehen kรถnnen strukturierte und objektorientierte Programmierperspektive.
Struktureller Ansatz: In der strukturierten Programmierung werden wir zwei Funktionen erstellen โ
- Einer zum Zurรผckziehen
- Und das andere fรผr Einzahlungsaktionen.
Da die Funktionsweise dieser Funktionen auf allen Konten gleich bleibt.
OOPs Ansatz: Wรคhrend mit dem Hoppla Programmieransatz. Wir wรผrden zwei Klassen erstellen.
- Jedes verfรผgt รผber eine Implementierung der Einzahlungs- und Auszahlungsfunktionen.
- Dadurch wird zusรคtzliche Arbeit รผberflรผssig.
รnderungsantrag in der Software
Nun gibt es eine รnderung in der Anforderungsspezifikation fรผr etwas, das in der Softwarebranche so รผblich ist. Sie sollten die Funktionalitรคt eines privilegierten Bankkontos mit รberziehungskredit hinzufรผgen. Ein รberziehungskredit ist eine Mรถglichkeit, einen Betrag abzuheben, der รผber dem verfรผgbaren Saldo auf Ihrem Konto liegt.
Struktureller Ansatz: Unter Verwendung eines funktionalen Ansatzes muss ich meine Auszahlungsfunktion รคndern, die bereits getestet und als Basis festgelegt wurde. Und wenn Sie eine Methode wie unten hinzufรผgen, werden neue Anforderungen berรผcksichtigt.
OOPs Ansatz: Bei Verwendung des OOP-Ansatzes mรผssen Sie lediglich eine neue Klasse mit einer eindeutigen Implementierung der Rรผckzugsfunktion schreiben. Wir haben den getesteten Codeabschnitt nie berรผhrt.
Noch eine รnderungsanfrage
Was passiert, wenn sich die Anforderung weiter รคndert? Fรผgen Sie gerne ein Kreditkartenkonto mit seinen eigenen, einzigartigen Einzahlungsanforderungen hinzu.
Struktureller Ansatz: Bei einem strukturellen Ansatz mรผssen Sie den getesteten Teil des Einzahlungscodes erneut รคndern.
OOPs Ansatz: Bei der objektorientierten Programmierung erstellen Sie einfach eine neue Klasse mit ihrer eigenen Implementierung der Einzahlungsmethode (rot hervorgehoben in der Abbildung unten). Auch wenn die strukturierte Programmierung zunรคchst einfacher erscheint, ist die objektorientierte Programmierung langfristig รผberlegen.
Vorteile der Vererbung in OOPs
Man kรถnnte jedoch argumentieren, dass es in allen Klassen wiederholte Codeteile gibt.
Um dies zu umgehen, erstellen Sie eine รผbergeordnete Klasse, beispielsweise โKontoโ, und implementieren Sie die gleiche Einzahlungs- und Auszahlungsfunktion. Und lassen Sie untergeordnete Klassen die Klasse โKontoโ erben. So haben sie Zugriff auf Auszahlungs- und Einzahlungsfunktionen in der Kontoklasse. Die Funktionen mรผssen nicht einzeln implementiert werden. Dies ist Vererbung in Java. .











