기본 인터페이스 유형의 변수에 클래스를 할당 할 수없는 이유는 무엇입니까?기본 인터페이스 유형의 변수에 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'
컴파일러의 버그 또는 간단하지 허용 동작이된다
우리는 다음이 고려하십시오. 이 문제를 해결할 수 있습니까?
처럼 보일 것입니다. 클래스는 구현 된 인터페이스를 명시 적으로 지정해야합니다. 이것은 방법과 관련이 있습니다. 서로 다른 인터페이스 버전이 쿼리됩니다. –