Arten von Polymorphismus in Java | Erklärt

Arten von Polymorphismus in Java | Erklärt
Polymorphismus ist eine Fähigkeit, die es einem Objekt ermöglicht, viele Formen oder in einfachen Worten zu erstellen, um eine einzelne Aufgabe auf verschiedene Weise auszuführen. Zum Beispiel ermöglicht uns Polymorphismus, mehrere Methoden mit demselben Namen zu erstellen, aber die Implementierung jeder Methode unterscheidet sich von der anderen Methode. In Java kann das Konzept des Polymorphismus in der Laufzeit oder in der Kompilierungszeit implementiert werden.

Dieses Schreiben enthält einen gründlichen Überblick über Arten von Polymorphismus, wie unten aufgeführt:

  • Was ist Polymorphismus in Java
  • Statische/Kompilierungs-Zeit-Polymorphismus in Java
  • Dynamik/Laufzeitpolymorphismus in Java

Also lasst uns anfangen!

Was ist Polymorphismus in Java

Das Wort Polymorphismus ist eine Kombination von zwei griechischen Wörtern Poly bedeutet viele und Morphs bedeutet Formen daher kombiniert das Wort Polymorphismus bedeutet viele/mehrere Formen. Mit Polymorphismus können wir eine bestimmte Aufgabe auf verschiedene Weise ausführen

Beispiel

Betrachten wir die unten aufgeführten Beispiele der realen Welt, um das Konzept des Polymorphismus zu verstehen:

Tiere klingt: Löwen brüllen, Hundebellen, Pferdehaus und so weiter.

Lassen Sie uns nun das oben gegebene Konzept in Bezug auf die Java-Programmierung verstehen, in diesem Beispiel die Tiere ist eine Klasse und "Geräusche()" ist seine Methode:

Hier Tiere ist eine allgemeine Klasse, die nicht nur mit einem Geräusch wie einem Dröhnen oder Rinde usw. eingeschränkt werden kann. Eine Klasse hat also eine generische Implementierung, die von den anderen Klassen erweitert werden kann.

Außerdem, Löwe, Hund, Und Pferd (Unterklassen) können die Eigenschaften der übergeordneten Klasse verlängern Tier. Die untergeordneten Klassen erben die Funktion ihrer übergeordneten Klasse und können die Implementierung dieser Funktion außer Kraft setzen.

Mit dem Polymorphismus in Java können Sie dieselbe Methode verwenden, um verschiedene Funktionen auszuführen. In Java kann Polymorphismus mittels Kompilierungszeit oder Laufzeit erreicht werden.

Statische/Kompilierungs-Zeit-Polymorphismus in Java

Im Kompilierzeitpolymorphismus sind die Objekte von CALS mit den Methoden bei der Kompilierungszeit begrenzt. Der Kompilierzeitpolymorphismus wird vom Compiler behandelt und unterstützt das Konzept der Methodenüberlastung.

Die Methodenüberladung im Kompilierungs-Zeit-Polymorphismus ermöglicht es einer Klasse, mehrere Methoden mit demselben Namen zu erstellen, jedoch unterschiedliche Implementierungen in Bezug auf Parameter. Und es gibt einige Regeln für diese Parameter, wie unten aufgeführt:

Wir können mehrere Methoden mit demselben Namen erstellen, jedoch mit einer anderen Reihenfolge/Reihenfolge der Parameter.

Wir können mehr als eine Methode mit demselben Namen erstellen, jedoch mit unterschiedlichen Datentypen von Parametern:

Wir können mehrere Methoden mit demselben Namen erstellen, jedoch mit einer anderen Anzahl von Parametern.

Betrachten wir ein Beispiel für das tiefgreifende Verständnis des Kompilierungszeitpolymorphismus:

Beispiel

In diesem Beispiel haben wir zwei Klassen erstellt:

Multiplikation.Java

Der Multiplikation Die Klasse erstellt drei Methoden mit demselben Namen "Produkt()", Die erste Methode erfordert zwei Ganzzahlwerte, die zweite nimmt zwei Doppelwerte und die dritte drei Ganzzahlwerte:

Paket Haupt;
öffentliche Klasse Multiplikation
int product (int num1, int num2)
return num1 * num2;

Doppelprodukt (Double Num1, Double Num2)
return num1 * num2;

int product (int num1, int num2, int num3)
return num1 * num2 * num3;

Der Screenshot des oben gegebenen Codes ist wie folgt:

Hauptsächlich.Java

Innerhalb der Hauptsächlich Klasse haben wir das Objekt der Multiplikationsklasse erstellt und alle drei Methoden der aufgerufen Multiplikation Klasse:

Paket Haupt;
Hauptklasse Haupt
public static void main (String [] args)
Multiplikation OBJ = NEW Multiplication ();
System.aus.println ("Ergebnis von zwei int -Werten:" + obj.Produkt (5, 12));
System.aus.println ("Ergebnis von drei int -Werten:" + obj.Produkt (4, 15, 2));
System.aus.println ("Ergebnis der Doppelwerte:" + obj.Produkt (5.5, 2.67));

Der vollständige Code des Hauptsächlich Die Klasse ist in der folgenden Abbildung dargestellt:

Die Ausgabe wird so verlaufen:

Aus der obigen Ausgabe beobachten wir das:

Als wir die beiden bestanden haben int Werte dann die Produkt Methode mit zwei int Parameter werden ausgeführt.

Als wir die drei bestanden haben int Werte dann die Produkt Methode mit drei int Parameter werden ausgeführt.

In ähnlicher Weise, als wir die beiden bestanden haben doppelt Werte dann die Produkt Methode mit zwei doppelt Parameter werden ausgeführt.

Dynamik/Laufzeitpolymorphismus in Java

In Laufzeit Polymorphismus, die Objekte sind zur Laufzeit mit den Methoden begrenzt (dynamische Bindung). Der dynamische oder Laufzeitpolymorphismus unterstützt das Konzept von Methodenüberschreibung.

  • In OOP bezieht sich der Begriff überschreiben, dass die Funktionen vorhandener Methoden überschrieben werden.
  • Im Laufzeitpolymorphismus müssen der Typ und die Liste des Parameters in der überschriebenen Methode gleich sein.
  • Der Rückgabetyp der Methode muss sowohl in der Superklasse als auch in der Unterklasse gleich sein.
  • Eine übergeordnete Klasse mit einer mit endgültigen, privaten oder statischen Methode deklarierter Methode kann in der Unterklasse nicht außer Kraft gesetzt werden. In der Kinderklasse kann jedoch eine statische Methode neu eingebracht werden.

Schauen wir uns das untergegebene Beispiel für das tiefgreifende Verständnis des Laufzeitpolymorphismus an.

Beispiel

Der folgende Code -Snippet erstellt drei Klassen: Person, Angestellte, Und Abteilung, Die Person Klasse ist eine Elternklasse, die Mitarbeiter Klasse erstreckt sich Person Klasse und Abteilung Klassenentends Mitarbeiter Klasse.

Klassenperson
public void print ()
System.aus.println ("Dies ist eine Personklasse");


Der Mitarbeiter der Klasse erweitert die Person
public void print ()
System.aus.println ("Dies ist eine Mitarbeiterklasse");


Die Klassenabteilung erweitert Mitarbeiter
public void print ()
System.aus.println ("Dies ist Abteilungsklasse");


öffentliche Klasse RunTimeExample
public static void main (String [] args)
Person per = neue Person ();
Person emp = neuer Mitarbeiter ();
Personabteilung = neue Abteilung ();
pro.drucken();
EMP.drucken();
Abteilung.drucken();

Die Kinderklassen erweitern die drucken() Methode aus ihren übergeordneten Klassen und sie haben auch ihre eigene Implementierung dieser Print () -Methode. Und innerhalb der Hauptmethode erstellen wir das Objekt jeder Klasse und rufen die auf drucken() Methode mit dem jeweiligen Klassenobjekt. Der vollständige Code und die Ausgabe finden Sie im folgenden Screenshot:

Die obige Ausgabe überprüft, dass sie die Implementierung der übergeordneten Klassen -Print () -Funktion überschreiben, wenn wir die Druckfunktionen mit jedem untergeordneten Klassenobjekt aufrufen.

Abschluss

Mit Polymorphismus können wir mehrere Methoden mit demselben Namen erstellen, jedoch mit unterschiedlichen Implementierungen in den Eltern- und Kinderklassen. Es kann entweder zur Kompilierungszeit erreicht werden, was das Konzept der Methodenüberlastung oder zur Laufzeit unterstützt. Dieses Schreiben enthält einen detaillierten Überblick über die Laufzeit und den Kompilierzeitpolymorphismus und erklärt, was Polymorphismus, seine Typen und Regeln für die Implementierung jedes Typs ist.