Ich hab auch noch einen:
Delphi-Quellcode:
type
TVater = class
public
procedure SayHello; virtual;
end;
TSohn = class(TVater)
public
procedure SayHello; override;
end;
TTochter = class(TVater)
public
procedure SayHello; override;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
procedure GetTask(Klasse: TVater);
public
{ Public-Deklarationen }
end;
...
procedure TVater.SayHello;
begin
ShowMessage('Hallo von der Vaterklasse');
end;
procedure TSohn.SayHello;
begin
ShowMessage('Hallo von der Sohnklasse');
end;
procedure TTochter.SayHello;
begin
ShowMessage('Hallo von der Tochterklasse');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Vater: TVater;
Sohn: TSohn;
Tochter: TTochter;
begin
Vater := TVater.Create;
try
GetTask(Vater);
finally
Vater.Free;
end;
Sohn := TSohn.Create;
try
GetTask(Sohn);
finally
Sohn.Free;
end;
Tochter := TTochter.Create;
try
GetTask(Tochter);
finally
Tochter.Free;
end;
end;
procedure TForm1.GetTask(Klasse: TVater);
begin
Klasse.SayHello;
end;
Das wird mir jetzt aber zu OO-orthodox.