我正在开发一个源自商业组件套件的组件,并且遇到了我以前从未考虑过的挑战。考虑以下代码片段:
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;
所以如果Mode = mmOne那么我照常继承,但如果是mmTwo,我仍然想继承我祖先祖先的代码,而不是祖先引入的代码。我已经尝试了上述方法,但没有成功,而且由于我以前从未遇到过这种情况,我认为这是不可能的。有接盘侠吗?