Der Parameter ist aber auch ein Objekt. Genau genommen kann der Parameter eines von 3 verschiedenen Objekten sein...
Ich möchte also, dass ich die "GetTask()"-Methode mit einem beliebigen dieser 3 Objekte ansprechen kann und dann aufgrund des übergebenen Objekttyps entschieden werden kann, wie damit weiter verfahren werden kann.
Ich hätte auch noch einen ...
Delphi-Quellcode:
interface
Type
TParentClass = class;
TParentClass = Class (Tobject)
public
Procedure GetTask(AClass : TParentClass); overload;
End;
TChildA = Class (TParentClass)
public
Procedure GetTask(AClass : TParentClass); OverLoad;
End;
TChildB = Class (TParentClass)
public
Procedure GetTask(AClass : TParentClass); OverLoad;
End;
implementation
{ TParentClass }
procedure TParentClass.GetTask(AClass: TParentClass);
begin
if AClass is TChildA then
TChildA(AClass).GetTast(AClass)
else if AClass is TChildB then
TChildB(AClass).GetTast(AClass)
end;
{ TChildA }
procedure TChildA.GetTask(AClass: TParentClass);
begin
ShowMessage('Child A');
end;
{ TChildB }
procedure TChildB.GetTask(AClass: TParentClass);
begin
ShowMessage('Child B');
end;
procedure TForm1.Button3Click(Sender: TObject);
var
MyClassA : TChildA;
MyClassB : TChildB;
begin
MyClassA := TChildA.Create;
TParentClass(MyClassA).GetTast(MyClassA);
MyClassB := TChildB.Create;
TParentClass(MyClassB).GetTast(MyClassB);
end;