我正在覆盖一个虚方法,并且我想调用 inherited。但我不想调用 直接的 祖先,我想调用 之前的那个。
TObject
TDatabaseObject
TADODatabaseObject <---call this guy
TCustomer <---skip this guy
TVIP <---from this guy
我尝试将self
强制转换为其祖先,然后在其上调用该方法,但这导致了递归堆栈溢出:
procedure TVip.SetProperties(doc: IXMLDOMDocument);
begin
TADODatabaseObject(Self).SetProperties(doc); //skip over TCustomer ancestor
...
end;
我尝试添加 inherited
关键字,但这并不能编译:
procedure TVip.SetProperties(doc: IXMLDOMDocument);
begin
inherited TADODatabaseObject(Self).SetProperties(doc); //skip over TCustomer ancestor
...
end;
可能吗?