.net 非抽象类不提供抽象方法的实现

.net 非抽象类不提供抽象方法的实现,.net,methods,abstract-class,base-class,delphi-prism,.net,Methods,Abstract Class,Base Class,Delphi Prism,我有一个基类,如下所示 TMakerObject = class ... public method Clone:TControlObject; virtual; abstract; end; 我想把这个方法抽象化。所以,基类不需要实现或定义这个方法。但是,子类可以定义自己的克隆方法 但编译器一直给我这个错误-非抽象类不提供抽象方法的实现。 如果是的话,这是如何做到的 谢谢,(这不是Delphi特有的)如果说方法是抽象的,那么您是说基类没有为它定义实现。因此,有两种语言行为的选择:

我有一个基类,如下所示

TMakerObject = class
...
public
    method Clone:TControlObject; virtual; abstract;
end;
我想把这个方法抽象化。所以,基类不需要实现或定义这个方法。但是,子类可以定义自己的克隆方法

但编译器一直给我这个错误-非抽象类不提供抽象方法的实现。

如果是的话,这是如何做到的

谢谢,

(这不是Delphi特有的)如果说方法是
抽象的
,那么您是说基类没有为它定义实现。因此,有两种语言行为的选择:

  • 允许将基类设置为非抽象类,并且在基类实例上调用此方法在执行时失败,并出现“method not implemented”(方法未实现)错误;或
  • 不允许类包含抽象方法,除非它本身也被声明为抽象的,这样它的实例就不可能存在,而且上述问题永远不会发生

语言设计者倾向于编译时问题而不是执行时问题,他们选择了第二个选项。

我认为您也需要定义类anstract。我不确定Delphi语法,但它应该类似于
TMakerObject=abstract class