我正在研究一个源自商业组件套件的组件,并遇到了一个我以前从未考虑过的挑战.请考虑以下代码段:
TMyClass = class
protected
procedure SomeMethod; virtual;
end;
TMyClass1 = class(TMyClass)
protected
procedure SomeMethod; override;
end;
TMyMode = (mmOne, mmTwo);
TMyClass2 = class(TMyClass1)
private
FMode: TMyMode;
protected
procedure SomeMethod; override;
public
property Mode: TMyMode read FMode write FMode;
end;
...
procedure TMyClass2.SomeMethod;
begin
if FMode = mmOne then inherited SomeMethod
else inherited TMyClass.SomeMethod;
end;
Run Code Online (Sandbox Code Playgroud)
因此,如果Mode = mmOne,那么我继承正常,但如果它是mmTwo,我仍然想继承祖先祖先的代码,但不是祖先中引入的代码.我已经尝试了上述内容,没有成功,因为我以前从未遇到过这种情况,所以我认为这是不可能的.任何接受者?