나는 그 뒤에 인터페이스와 해당 객체를 가지고있다. 예를 들어 ...가상 추상 메서드를 사용하여 인터페이스 개체를 상속 할 수 있습니까?
IMyInterface = interface
function GetSomething: WideString;
procedure SetSomething(const Value: WideString);
property Something: WideString read GetSomething write SetSomething
end;
TMyObject = class(TInterfacedObject, IMyInterface)
private
function GetSomething: WideString;
procedure SetSomething(const Value: WideString);
public
property Something: WideString read GetSomething write SetSomething
end;
이 인터페이스를 사용하여 DLL에서이 개체와 상호 작용할 수 있습니다.
지금 나는 기본적으로 다음을 상속 아이를 강제로 기본 필드는 가상 및 추상적하고 싶습니다 제외
TMyOtherObject = class(TMyObject)
private
function GetSomething: WideString; override;
procedure SetSomething(const Value: WideString); override;
...이 객체를 상속 이러한 메소드의 일부를 오버라이드 (override)하고 싶습니다. ..
TMyObject = class(TInterfacedObject, IMyInterface)
private
function GetSomething: WideString; virtual; abstract;
procedure SetSomething(const Value: WideString); virtual; abstract;
이 작업을 수행 할 수 있고 인터페이스가 여전히이 필드에서 작동합니까? 인터페이스 내에서 이렇게 정의해야합니까? (나는 물론 인터페이스의 모든 필드는 이미 추상적이라는 것을 알고있다)
왜 자신이 컴파일러에 시도하지 :
여기에 지점을 증명하는 간단한 프로그램입니다? (배우면서) - 왜 이것이 효과가 없다고 기대합니까? –