爲什麼我無法將類分配給其基本接口類型的變量。無法將TMyClass對象分配給其基本接口類型的變量
考慮,我們有以下幾點:
IInt1 = interface
procedure Test1;
end;
IInt2 = interface(IInt1)
procedure Test2;
end;
TCustomClass = class(TInterfacedObject)
end;
TMyClass = class(TCustomClass, IInt2)
procedure Test1;
procedure Test2;
end;
var
Obj: IInt1;
begin
Obj := TMyClass.Create; // <!-- E2010 Incompatible types: 'IInt1' and 'TMyClass'
...
end;
E2010 Incompatible types: 'IInt1' and 'TMyClass'
這是一個編譯器或錯誤根本就沒有允許的動作。這可以解決嗎?
除此之外:接口繼承只適用於接口。該類必須明確指定它實現的接口。這與處理方式有關,會查詢不同的接口版本(相互派生的版本)。 – 2012-03-06 16:34:48