InterfaceImplementation? of a ClassInterface? with an ObjectProperty?.
Related with InterfaceAggregation
In the DelphiLanguage this is provided by implements keyword
Explain how this is different from other languages or types of inheritance, or DeleteThisPageSoon.
type IXInterface = interface(IUnknown) ['{713252E5-4636-11D5-B572-00AA00ACFD08}'] procedure XStaticMethod; procedure XVirtualMethod; end; IYInterface = interface(IUnknown) ['{713252E6-4636-11D5-B572-00AA00ACFD08}'] procedure YMethod; end; IZInterface = interface(IUnknown) ['{713252E4-4636-11D5-B572-00AA00ACFD08}'] end; type TInnerObject = class(TAggregatedObject,IXInterface,IYInterface) public procedure XStaticMethod; procedure XVirtualMethod; virtual; procedure YMethod; end; TSpecialObject = class(TInnerObject,IXInterface,IYInterface) public procedure XStaticMethod; procedure XVirtualMethod; override; procedure YMethod; end; TFoo = class(TObject,IXInterface,IYInterface,IZInterface) private FInnerX: TInnerObject; protected function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall; function _AddRef: Integer; stdcall; function _Release: Integer; stdcall; function GetX: TInnerObject; virtual; function GetY: IYInterface; public constructor Create; destructor Destroy; override; property InnerX: TInnerObject read GetX implements IXInterface; property InnerY: IYInterface read GetY implements IYInterface; end; TBar = class(TFoo,IXInterface,IYInterface,IUnknown) private FX: TSpecialObject; FY: IYInterface; protected function GetX: TInnerObject; override; public constructor Create; destructor Destroy; override; property Y: IYInterface read FY implements IYInterface; property X: TSpecialObject read FX implements IXInterface; end;