Vererbung in Java (mit Beispiel)

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:

  1. Einzelvererbung
  2. Mehrfachvererbung
  3. Mehrstufige Vererbung
  4. Hierarchische Vererbung
  5. Hybride Vererbung

1. Einfache Vererbung:

Bei der Einzelvererbung erweitert eine Klasse eine andere Klasse (nur eine Klasse).

Einzelvererbung in Java
Einzelvererbung

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.

Mehrfachvererbung in Java
Java 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.

Mehrstufige Vererbung in Java
Mehrstufige Vererbung

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.


Hierarchische Vererbung in Java
Hierarchische Vererbung

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.


Hybride Vererbung
Hybride Vererbung

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:


Beispiel von Java Erbe
Java Vererbungsbeispiel

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).

Vererbung in OOP

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 erstellen wir zwei Funktionen –

  1. Einer zum Zurückziehen
  2. Und das andere für Einzahlungsaktionen.

Da die Funktionsweise dieser Funktionen auf allen Konten gleich bleibt.

Vererbung in OOPs

Der Ansatz von OOP: Während der Verwendung des 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.

Vererbung in OOPs

Ä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.

Änderungsantrag in der Software

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.

Änderungsantrag in der Software

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.

Änderungsantrag in der Software

Noch eine Änderungsanfrage

Was passiert, wenn sich die Anforderung weiter ändert? Fügen Sie gerne ein Kreditkartenkonto mit seinen eigenen, einzigartigen Einzahlungsanforderungen hinzu.

Mehrfacher Änderungsantrag in der Softwareanforderung

Struktureller Ansatz: Bei einem strukturellen Ansatz müssen Sie den getesteten Teil des Einzahlungscodes erneut ändern.

Struktureller Ansatz für mehrere Änderungsanfragen in Software

Der Ansatz von OOP: Aber mit dem objektorientierten Ansatz erstellen Sie einfach eine neue Klasse mit ihrer einzigartigen Implementierung der Einzahlungsmethode (rot hervorgehoben im Bild unten). Auch wenn die strukturelle Programmierung zunächst wie ein einfacher Ansatz erscheint, gewinnt OOP auf lange Sicht.

OOPs Ansatz für mehrere Änderungsanfragen

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. .

Vorteile der Vererbung in OOPs

Vorteile der Vererbung in OOPs