为什么我无法将类分配给其基本接口类型的变量。无法将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