Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#23

Re: unterschied VERERBUNG & POLYMORPHIE

  Alt 4. Nov 2009, 22:34
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
  Mit Zitat antworten Zitat