Zitat von
M. Hassmann:
Polymorphie bedeutet zum Beispiel, dass eine procedure / function mehrfach mit dem selben Namen vorhanden sein kann, aber zum Beispiel einen anderen rückgabewert liefert.
Das ist schlichtweg falsch. Von Polymorphie spricht man nur im Zusammenhang mit Klassen. Das nutzen mehrerer gleichnamiger Methoden mit unterschiedlicher Signatur (und dazu gehört NICHT der Rückgabewert) heißt Überladung. Zwei Überladene Funktionen müssen sich in Reihenfolge, Anzahl und Datentyp der Parameter in mindestens einem Punkt unterscheiden. Der Rückgabewert ist egal. Konkret:
Delphi-Quellcode:
function MachWas(A: Integer): Integer; overload;
function MachWas(A: String): Integer; overload; // Geht, Parametertyp unterschiedlich
function MachWas(A: Integer; B: String): Integer; overload; // Geht, Parameteranzahl unterschiedlich
function MachWas(B: Integer; A: String): Integer; overload; // Geht nicht. Namen sind egal. Anzahl, Reihenfolge und Datentypen sind gleich --> gleiche Signatur --> Fehler
function MachWas(A: String): String; overload; // Geht nicht. Rückgabewert gehört nicht zur Signatur --> gleiche Signatur --> Fehler