我有一个继承两次的基础。第二个子类没有为方法克隆提供任何签名,但是第三个子类按如下方式执行并定义方法克隆。双重继承和抽象方法
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