我有一個從TParent派生的TChild類。 TParent有一個MyProp屬性,它讀取和設置數組中的一些值。當然這個屬性是由TChild繼承的,但是我想在兒童屬性中添加一些額外的處理。下面的代碼更好地解釋了我想要做的事情,但它不起作用。我怎樣才能實現它?屬性覆蓋
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;
您不必重新聲明屬性。只要重寫getter和setter方法,你就會好起來的。 – jpfollenius 2009-12-17 18:58:07
@Smasher - 對。謝謝。 – Ampere 2009-12-17 21:02:37