我有一個基類與虛擬函數:什麼原因導致「W1010方法'%s'隱藏基類型'%s'的虛警方法」警告?
TMyBaseClass = class(TObject)
public
ValueOne : integer;
procedure MyFunction(AValueOne : integer); virtual;
end;
procedure TMyBaseClass.MyFunction(AValueOne : integer);
begin
ValueOne := ValueOne;
end;
子類實現具有相同名稱的功能。 這個函數添加一個新的參數並調用它的anchestor的函數。
TMyDerivedClass = class(TMyBaseClass)
public
ValueTwo : integer;
procedure MyFunction(AValueOne : integer; AValueTwo : integer);
end;
procedure TMyDerivedClass.MyFunction(AValueOne : integer; AValueTwo : integer);
begin
inherited MyFunction(AValueOne);
ValueTwo := ValueTwo;
end;
在編譯時,示出了以下警告消息:W1010方法
「的MyFunction隱藏了基類型的虛擬方法TMyBaseClass'
我找到了解決該問題閱讀another question,但我想知道是什麼導致此警告。 TMyDerivedClass.MyFunction是否隱藏TMyBaseClass.MyFunction,即使這兩個函數具有不同的參數?如果是這樣,爲什麼?
感謝您的回答,您解決了我對此的所有疑問。 – ExDev