我有一个从TParent派生的TChild类。 TParent具有一个属性MyProp,它正在读取并在数组中设置一些值。当然这个属性是由TChild继承的,但我想在child的属性中添加一些额外的处理。下面的代码更好地解释了我想要做什么,但它无法正常工作。我该如何实施呢?
TParent = class...
private
function getStuff(index: integer): integer; virtual;
procedure setStuff(index: integer; value: integer); virtual;
public
property MyProp[index: integer] read GetStuff write SetStuff
end;
TChild = class...
private
procedure setStuff(index: integer; value: integer); override;
function getStuff(index: integer): integer; override;
public
property MyProp[index: integer] read GetStuff write SetStuff
end;
procedure TChild.setStuff(value: integer);
begin
inherited; // <-- execute parent 's code and
DoMoreStuff; // <-- do some extra suff
end;
function TChild.getStuff;
begin
result:= inherited; <---- problem was here
end;
答案 0 :(得分:2)
解决。 子函数实现错误。基本上代码有效。 解决方案是:
Result := inherited getStuff(Index);
答案 1 :(得分:0)
我对Delphi非常生疏。你遇到了什么样的“它不起作用”?是否未能编译?
我怀疑inherited
调用无法编译,因为父节点实际上没有执行方法。