Zitat:
Ich habe mehrere unterschiedliche Klassen die aber alle diegleichen Funktionen (im Interface) haben.
Die Klassen führen die Funktionen aber unterschiedlich aus.
Das klingt für mich, als bräuchtest Du eine (abstrakte) Basisklasse, von der die anderen dann abgeleitet werden.
Delphi-Quellcode:
type
TBaseClass = class
protected
procedure DoSomethingImportant; virtual; abstract;
procedure DoSomethingMoreImportant; virtual; abstract;
procedure DoSomethingEvenMoreImportant; virtual; abstract;
end;
TFirstChild = class(TBaseClass)
protected
procedure DoSomethingImportant; override;
procedure DoSomethingMoreImportant; override;
procedure DoSomethingEvenMoreImportant; override;
end;
TSecondChild = class(TBaseClass)
protected
procedure DoSomethingImportant; override;
procedure DoSomethingMoreImportant; override;
procedure DoSomethingEvenMoreImportant; override;
end;
procedure TMain.DoSomething(AObject: TBaseClass);
begin
AObject.DoSomethingImportant;
end;
Je nachdem, von welchem Typ nun das übergebene Objekt ist, führt es dann die in der Ableitung implementierte Methode aus.