Thema: Delphi Vererbung

Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Vererbung

  Alt 4. Nov 2005, 07:55
Ja
überladen = gleicher Methodenname, unterschiedliche Parameter
überschreiben = "ersetzen" bzw. "verdecken" der geerbten Methode

Wenn du etwas mit overload markierst, dann wird je nach Parameter immer eine Funktion aufgerufen, die genau diese Parameter erwartet.
Beim Überschreiben hättest du eher sowas :

Delphi-Quellcode:
type
  TFirstClass = class(TObject)
    protected
      procedure sayHello;
  end;

  TSecondClass = class(TFirstClass)
    protected
      procedure sayHello; override;
  end;

procedure TFirstClass.sayHello;
begin
  ShowMessage('FirstClass sagt Hallo');
end;

procedure TSecondClass.sayHello;
begin
  ShowMessage('SecondClass sagt Hallo');
end;
Und wenn du dann Istanzen der verschiedenen Klassen hast, siehst du den Unterschied :
Delphi-Quellcode:
var First : TFirstClass;
    Second : TSecondClass;
begin
  First := TFirstClass.Create;
  Second := TSecondClass.Create;
  First.sayHello; // Ausgabe : FirstClass sagt Hallo
  Second.sayHello; // Ausgabe : SecondClass sagt Hallo
  First.Free;
  Second.Free;
end;
Wie du siehst, haben die Methoden beide keine Parameter, aber machen doch was unterschiedliches. In dem Zusammenhang sei auch auf inherited verwiesen. Mit diesem Schlüsselwort kannst du in einer erbenden Klasse eine Methode der Vorgängerklasse aufrufen, die du überschreibst.
  Mit Zitat antworten Zitat