IFoo = interface(IUnknown) function Method1: HResult; end; IFoo2 = interface(IFoo) function Method2: Hresult; end; TBar = class(IFoo2) // Declaration of Method1 and Method2 end; // Later in the code var Foo: IFoo; begin Foo := TBar.Create; end;