Vererbung in Java-OOPs mit Beispiel

Was ist Vererbung?

Vererbung ist ein Mechanismus, bei dem eine Klasse die Eigenschaft einer anderen Klasse erwirbt. Zum Beispiel erbt ein Kind die Merkmale seiner Eltern. Mit der Vererbung können wir die Felder und Methoden der vorhandenen Klasse wiederverwenden. Vererbung erleichtert daher die Wiederverwendbarkeit und ist ein wichtiges Konzept von OOPs.

In diesem Lernprogramm lernen Sie

  • Vererbungstypen
  • Vererbung in Java
  • Java Vererbungsbeispiel
  • Super-Schlüsselwort
  • Lernen Sie Vererbung in OOPs mit Beispiel

Vererbungstypen

Es gibt Verschiedene Arten der Vererbung in Java:

Einzelvererbung:

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

Einzelvererbung

Im obigen Diagramm erweitert Klasse B nur Klasse A. Klasse A ist a Superklasse und Klasse B ist eine Unterklasse.

Mehrfachvererbung:

Bei Mehrfachvererbung erweitert eine Klasse mehr als eine Klasse. Java unterstützt keine Mehrfachvererbung.

Mehrfachvererbung

Gemäß obigem Diagramm erweitert Klasse C sowohl Klasse A als auch Klasse B.

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.

Vererbung auf mehreren Ebenen

Wie in Diagramm gezeigt, ist Klasse C die Unterklasse von B und B ist a der Unterklasse Klasse A.

Hierarchische Vererbung:

Bei der hierarchischen Vererbung wird eine Klasse von vielen Unterklassen geerbt.

Hierarchische Vererbung

Wie im obigen Beispiel erben Klasse B, C und D dasselbe Klasse A.

Hybridvererbung:

Hybridvererbung ist eine Kombination aus Einzel- und Mehrfachvererbung.

Hybridvererbung

Wie im obigen Beispiel sind alle öffentlichen und geschützten Mitglieder der Klasse A. in Klasse D geerbt, erstens über Klasse B und zweitens über Klasse C.

Hinweis: Java unterstützt keine Hybrid- / Mehrfachvererbung

Vererbung in Java

JAVA INHERITANCE ist ein Mechanismus, bei dem eine Klasse die Eigenschaft einer anderen Klasse erwirbt. Wenn in Java eine „Is-A“ -Beziehung zwischen zwei Klassen besteht, verwenden wir Inheritance. Die übergeordnete Klasse wird als Super bezeichnet Klasse und die geerbte Klasse wird als Unterklasse bezeichnet. Das Schlüsselwort extends wird von der Unterklasse verwendet, um die Merkmale der Superklasse zu erben.

Vererbung ist wichtig, da dies zur Wiederverwendbarkeit von Code führt.

Java-Vererbungssyntax:

class subClass extends superClass { //methods and fields } 

Java-Vererbung E. xample

Super-Schlüsselwort

Das Super-Schlüsselwort ähnelt dem Schlüsselwort „this“.

Mit dem Schlüsselwort super kann auf alle Datenelemente oder Methoden der übergeordneten Klasse zugegriffen werden.

Das Super-Schlüsselwort kann auf Variablen-, Methoden- und Konstruktorebene verwendet werden.

Syntax:

super.<method-name>();

Vererbung in OOPs mit Beispiel lernen

Betrachten Sie dieselbe Bankanwendung aus dem vorherigen Beispiel .

Wir sollen zwei verschiedene Kontotypen eröffnen, einen zum Speichern und einen zum Überprüfen (auch als aktuell bezeichnet).

Vergleichen und untersuchen wir, wie wir die Codierung aus einer strukturierten und objektorientierten Programmierperspektive betrachten können. Struktureller Ansatz: In der strukturierten Programmierung werden wir zwei Funktionen erstellen –

  1. Eine zum Abheben
  2. und die andere für Einzahlungsaktionen.

Seit dem Die Funktionsweise dieser Funktionen bleibt in allen Konten gleich.

OOP-Ansatz: Bei Verwendung des OOP-Programmieransatzes. Wir würden zwei Klassen erstellen.

  • Jeder hat die Implementierung der Ein- und Auszahlungsfunktionen.
  • Dadurch wird zusätzliche Arbeit überflüssig.

Änderungsanforderung in Software

Jetzt gibt es eine Änderung in der Anforderungsspezifikation für etwas, das in der Softwareindustrie so üblich ist. Sie sollten ein funktionsprivilegiertes Bankkonto mit Überziehungsfazilität hinzufügen. Überziehung ist eine Möglichkeit, bei der Sie einen Betrag abheben können, der über dem Guthaben auf Ihrem Konto liegt.

Struktureller Ansatz: Mit dem funktionalen Ansatz muss ich meine Rückzugsfunktion ändern. das ist bereits getestet und baselined. Wenn Sie eine Methode wie die folgende hinzufügen, werden neue Anforderungen berücksichtigt.

OOP-Ansatz: Mit dem OOP-Ansatz müssen Sie nur Schreiben Sie eine neue Klasse mit einer einzigartigen Implementierung der Rückzugsfunktion. Wir haben den getesteten Code nie berührt.

Eine weitere Änderungsanforderung

Was passiert, wenn sich die Anforderung ändert? des Weiteren? Fügen Sie gerne ein Kreditkartenkonto mit einer eigenen Einzahlungsanforderung hinzu.

Struktureller Ansatz: Mit dem strukturellen Ansatz müssen Sie den getesteten Einzahlungscode ändern nochmal.

OOP-Ansatz: Wenn Sie jedoch einen objektorientierten Ansatz verwenden, werden Sie dies nur tun Erstellen Sie eine neue Klasse mit der einzigartigen Implementierung der Einzahlungsmethode (im Bild unten rot hervorgehoben).

Obwohl die strukturelle Programmierung zunächst ein einfacher Ansatz zu sein scheint, gewinnt OOP auf lange Sicht.

Vorteil der Vererbung in OOPs

Aber man kann argumentieren, dass Sie über alle Klassen hinweg wiederholt Code haben.

Um dies zu überwinden, erstellen Sie eine übergeordnete Klasse, sagen Sie „Konto“ und implementieren dieselbe Funktion zum Ein- und Auszahlen. Und machen Sie untergeordnete Klassen geerbte „Konto“ -Klasse. Damit sie Zugriff auf Auszahlungs- und Einzahlungsfunktionen in der Kontoklasse haben.

Die Funktionen müssen nicht einzeln implementiert werden. Dies ist Vererbung in Java. .

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.