创建抽象类函数的目的是什么

在Delphi中,我经常看到这样的代码:

TmyClass = class
public
   class function getsomething: integer; virtual; abstract;
end;

但是这种声明(即类函数)的目的是什么,因为调用TmyClass.getsomething总是会失败,因为它没有实现,即使它是在子类中实现的。

f2003365964y 回答:创建抽象类函数的目的是什么

如果直接调用TmyClass.getSomething,它将失败,但是与元类结合使用可能很有用。就像在非类函数上一样,它为您提供了定义抽象API的机会。

例如:

TmyClassClass = class of TMyClass;

TmyClass1 = class(TmyClass)
public
   class function getSomething: integer; override;
end;

var
  c: TmyClassClass;

  c := TmyClass1;
  c.getSomething;

当然,您始终可以在对象实例上使用类函数,因此在getSomething对象实例上调用TMyClass1也会起作用。

本文链接:https://www.f2er.com/3133356.html

大家都在问