Drei Zweige des Polymorphismus
- Ad-hoc-Polymorphismus liegt vor, wenn eine Funktion abhängig von einer begrenzten Anzahl von angegebenen Typen und Kombinationen von Eingabeparametern unterschiedlich implementiert wird. Ein Beispiel für einen Ad-hoc-Polymorphismus ist das Überladen von Funktionen.
- Parametrischer Polymorphismus liegt vor, wenn Code ohne Angabe des Typs geschrieben wird und daher mit einer beliebigen Anzahl verschiedener Typen verwendet werden kann, die später angegeben werden. In der objektorientierten Programmierung wird dies häufig als generische Programmierung bezeichnet.
- Einschlusspolymorphismus, auch als Untertyp bezeichnet, ist, wenn ein einzelner Name sich auf Instanzen einer beliebigen Anzahl verschiedener Klassen beziehen kann, solange sie dieselbe Superklasse verwenden.
Polymorphismus-Beispiel in Java
Beispielcode
class OverloadedObject {void overloadedMethod (int a) {System.out.println ("Diese Methode wird aufgerufen, wenn der Parameter eine Ganzzahl ist. a =" + a); } void overloadedMethod (int a, int b) {System.out.println ("Diese Methode wird aufgerufen, wenn zwei Parameter vorhanden sind und beide Ganzzahlen sind. a =" + a + ", b =" + b); } void overloadedMethod (double a) {System.out.println ("Diese Methode wird aufgerufen, wenn ein Parameter vorhanden ist und eine Zahl mit doppelter Genauigkeit ist. a =" + a); }} class DemonstrateOverloading {public static void main (Zeichenfolge args []) {OverloadedObject myObj = new OverloadedObject (); myObj.overloadedMethod (1); myObj.overloadedMethod (2, 3); myObj.overloadedMethod (4); }}
Beispielcode-Ausgabe
Diese Methode wird aufgerufen, wenn der Parameter eine Ganzzahl ist. a = 1 Diese Methode wird aufgerufen, wenn zwei Parameter vorhanden sind und beide Ganzzahlen sind. a = 2, b = 3 Diese Methode wird aufgerufen, wenn der Parameter eine Zahl mit doppelter Genauigkeit ist. a = 4
Beachten Sie, dass auf der Grundlage verschiedener Eingabeparameter unterschiedliche Ausgaben erzeugt werden, auch wenn die aufgerufenen Klassen- und Methodennamen jedes Mal gleich sind.
Objektorientiert, Ausgabe, Parameter, Polymorphes Virus, Programmiersprache, Programmierbegriffe