Vererbung von Interfaces ist immer mit Vorsicht zu geniessen.
Aber man kann ja mehrere Interfaces pro Klasse implementieren:
Delphi-Quellcode:
IFoo = interface(IInterface)
['{90CA22A8-ACC3-4EF8-8E41-3C1B7EF755E3}']
procedure Foo; stdcall;
end;
IBar = interface(IInterface)
['{ABCDF8A2-646E-48A7-8B80-DAAE3244281B}']
procedure Bar; stdcall;
end;
type
TFoo = class(TInterfacedObject, IFoo, IBar)
protected
procedure Foo; stdcall;
procedure Bar; stdcall;
end;
var
x : IFoo;
b : IBar;
begin
x := TFoo.Create();
x.Foo;
b := x as IBar; // bei älterem Delphi muss hier die Supports-Funktion verwendet werden
b.Bar;