Was ist Polymorphie in Java?

Polymorphismus in Java tritt auf, wenn eine oder mehrere Klassen oder Objekte durch Vererbung miteinander verwandt sind. Mit anderen Worten, es ist die Fähigkeit eines Objekts, viele Formen anzunehmen. Mit der Vererbung können Benutzer Attribute und Methoden erben, und Polymorphismus verwendet diese Methoden, um verschiedene Aufgaben auszuführen. Das Ziel ist also Kommunikation, aber der Ansatz ist anders.

Zum Beispiel haben Sie ein Smartphone für die Kommunikation., Der von Ihnen gewählte Kommunikationsmodus könnte alles sein. Es kann ein Anruf, eine Textnachricht, eine Bildnachricht, eine E-Mail usw. sein. Also, das Ziel ist gemeinsam, das ist Kommunikation, aber ihr Ansatz ist anders. Dies wird Polymorphismus genannt.

In diesem tutorial lernen Sie, –

  • Was ist Polymorphismus?
  • Java-Polymorphismus in Oops mit Beispiel
  • Methode Überschreiben
  • Unterschied zwischen Überladen und Überschreiben
  • Was ist dynamischer Polymorphismus?,
  • Super Keyword
  • Unterschied zwischen Statisch & Dynamischer Polymorphismus

Klicken Sie hier, wenn das Video nicht zugänglich ist

Java Polymorphismus in Oops mit Beispiel

Wir haben eine übergeordnete Klasse, ‚Konto‘ mit der Funktion der Ein-und Auszahlung. Konto hat 2 Kind-Klassen
Der Betrieb der Ein-und Auszahlung ist gleich für das Speichern und Girokonten. Die geerbten Methoden aus der Account-Klasse funktionieren also.,

Änderung der Softwareanforderung

Die Anforderungsspezifikation ändert sich, was in der Softwareindustrie so üblich ist. Sie sollen ein privilegiertes Bankkonto mit Überziehungsmöglichkeit hinzufügen.

Für einen Hintergrund, Überziehung ist eine Einrichtung, wo Sie einen Betrag mehr als das Gleichgewicht in Ihrem Konto abheben.

Die Methode für privilegierte muss also neu implementiert werden., Sie ändern jedoch nicht den getesteten Code in Spar – und Girokonto. Dies ist der Vorteil von OOPS

Schritt 1), sodass beim Aufruf der Methode“ zurückgezogen “ zum Speichern des Kontos eine Methode aus der übergeordneten Kontoklasse ausgeführt wird.

Schritt 2) Aber wenn die Methode“ Abheben “ für das privilegierte Konto (Überziehungsmöglichkeit) aufgerufen wird, wird die in der privilegierten Klasse definierte Abhebungsmethode ausgeführt. Dies ist Polymorphismus.,

Methode Überschreiben

Methode Überschreiben definiert eine Superklassenmethode in einer Unterklasse neu.

Regeln für das Überschreiben von Methoden

  • Die Methodensignatur, dh Methodenname, Parameterliste und Rückgabetyp müssen genau übereinstimmen.
  • Die überschriebene Methode kann die Zugänglichkeit erweitern, aber nicht einschränken, dh wenn sie in der Basisklasse privat ist, kann die untergeordnete Klasse sie öffentlich machen, aber nicht umgekehrt.,

Beispiel

Unterschied zwischen Überladen und Überschreiben

Was ist Dynamischer Polymorphismus?

Dynamischer Polymorphismus ist der Mechanismus, mit dem mehrere Methoden mit demselben Namen und derselben Signatur in der Oberklasse und Unterklasse definiert werden können. Der Aufruf einer überschriebenen Methode wird zur Laufzeit aufgelöst.,

Dynamischer Polymorphismus Beispiel:

Eine Referenzvariable der Superklasse kann sich auf ein Unterklassenobjekt beziehen

 Doctor obj = new Surgeon();

Betrachten Sie die Anweisung

obj.treatPatient();

Hier ist die Referenzvariable „obj“ von der übergeordneten Klasse, aber das Objekt, auf das es zeigt, ist von der untergeordneten Klasse (wie im Diagramm gezeigt).

obj.,n

Wenn eine Basisklassenreferenz zum Aufrufen einer Methode verwendet wird, wird die aufzurufende Methode von der JVM festgelegt, abhängig von dem Objekt, auf das die Referenz zeigt

Zum Beispiel, obwohl obj ein Verweis auf Doctor ist, ruft sie die Methode des Chirurgen auf, da sie auf ein Chirurgenobjekt zeigt

Dies wird während der Laufzeit entschieden und daher als dynamischer oder Laufzeitpolymorphismus bezeichnet

Super Keyword

What if the treatPatient method in the Surgeon class wants to execute the functionality defined in Doctor class and then perform its own specific functionality?,
In diesem Fall kann das Schlüsselwort superverwendet werden, um auf Methoden der übergeordneten Klasse aus der untergeordneten Klasse zuzugreifen.
Die treatPatient-Methode in der Surgeon-Klasse könnte wie folgt geschrieben werden:

treatPatient(){ super.treatPatient(); //add code specific to Surgeon}

Das Schlüsselwort super kann verwendet werden, um auf jedes Datenelement oder Methoden der Super-Klasse in der Sub-Klasse zuzugreifen.,br>Example:-To learn Inheritance, Polymorphism & super keyword

Step 1) Copy the following code into an Editor

Difference between Static & Dynamic Polymorphism

Static Polymorphism
Dynamic Polymorphism
It relates to method overloading., Es bezieht sich auf das Überschreiben von Methoden.

Fehler, falls vorhanden, werden zur Kompilierungszeit behoben. Da der Code während der Kompilierung nicht ausgeführt wird, daher der Name static.

Ex:

void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. 

Falls eine Referenzvariable eine überschriebene Methode aufruft, wird die aufgerufene Methode vom Objekt bestimmt, auf das Ihre Referenzvariable zeigt. Dies kann nur zur Laufzeit bestimmt werden, wenn Code in unter Ausführung, daher der Name dynamisch.,

Ex:

//reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient();