Vererbung in Java-OOPs mit Beispiel

Inhaltsverzeichnis:

Anonim

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. Daher erleichtert die Vererbung die Wiederverwendbarkeit und ist ein wichtiges Konzept für OOPs.

In diesem Tutorial lernen Sie:

  • Arten der Vererbung
  • Vererbung in Java
  • Java-Vererbungsbeispiel
  • Super Keyword
  • Lernen Sie die Vererbung in OOPs anhand eines Beispiels

Arten der Vererbung

In Java gibt es verschiedene Arten der Vererbung:

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 eine Superklasse und Klasse B ist eine Unterklasse.

Mehrfachvererbung:

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

Mehrstufige Vererbung

Wie in Diagramm gezeigt, ist Klasse C eine Unterklasse von B und B ist eine Unterklasse von 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 dieselbe Klasse A.

Hybride Vererbung:

Die hybride Vererbung ist eine Kombination aus Einzel- und Mehrfachvererbung.

Hybride Vererbung

Wie im obigen Beispiel werden alle öffentlichen und geschützten Mitglieder der Klasse A in die Klasse D vererbt, 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 das Eigentum einer anderen Klasse erwirbt. Wenn in Java eine "Is-A" -Beziehung zwischen zwei Klassen besteht, verwenden wir Vererbung. Die übergeordnete Klasse wird als Superklasse und die geerbte Klasse als Unterklasse bezeichnet. 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}

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 Super-Schlüsselwort ähnelt dem Schlüsselwort "this".

Das Schlüsselwort super kann verwendet werden, um auf ein beliebiges Datenelement oder Methoden der übergeordneten Klasse zuzugreifen.

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

Syntax:

super.();

Lernen Sie die Vererbung in OOPs anhand eines Beispiels

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 zwei Funktionen erstellt -

  1. Einer, der sich zurückzieht
  2. Und die andere für Einzahlungsaktionen.

Da die Funktionsweise dieser Funktionen über die Konten hinweg gleich bleibt.

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

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

Ä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, die bereits getestet und als Basis festgelegt wurde. Wenn Sie eine Methode wie die folgende hinzufügen, werden neue Anforderungen berücksichtigt.

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

Noch eine Änderungsanforderung

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

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

OOP-Ansatz : Mit dem objektorientierten Ansatz erstellen Sie jedoch nur 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 langfristig.

Vorteil der Vererbung in OOPs

Man kann jedoch argumentieren, dass Sie über alle Klassen hinweg wiederholt Code haben.

Um dies zu überwinden, erstellen Sie eine übergeordnete Klasse, sagen "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. .