我有一個繼承兩次的基礎。第二個子類沒有爲方法克隆提供任何簽名,但是第三個子類按如下方式執行並定義方法克隆。雙重繼承和抽象方法
TControlObject = abstract class
...
public
method Clone:TControlObject; virtual; abstract;
end;
TGateControl = class(TControlObject)
...
public
...
end;
TAndControl = class(TGateControl)
public
method Clone:TControlObject; override;
end;
但是,編譯器產生了一個錯誤,即TGateControl類不提供克隆方法的實現。由於TGateControl從TControlObject繼承,並且TAndControl類從TGateControl繼承,因此應該自動爲基類克隆方法重寫方法克隆。我對嗎?
由於提前,
你的代碼中的TMakerObject應該是TControlObject嗎?如果不是,爲什麼您要爲TMakerObject提供類簽名? – 2012-08-09 15:54:39
是的,犯了一個錯誤。這是當你開始複製和粘貼LOL – ThN 2012-08-09 16:01:31