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

标签 delphi

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

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

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

最佳答案

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

例如:

TmyClassClass = class of TMyClass;

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

var
  c: TmyClassClass;

  c := TmyClass1;
  c.getSomething;
<小时/>

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

关于delphi - 创建抽象类函数的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778074/

相关文章:

delphi - 如何在delphi中延迟shell命令?

delphi - 获取简短的Windows语言名称

Delphi 编译错误 F2048 单元格式错误

Delphi 内联汇编器和类属性

c++ - 显示 Windows 用户对话框

delphi - 使 TChromium 渲染抗锯齿

javascript - 在 TWebbrowser 中禁用同源策略

delphi - ClientDataSet 过滤器包含 "NOT LIKE"

delphi - 如何使用 Lazarus/Free Pascal 获取 Windows 用户权限信息

c# - 我的项目使用什么语言?