类声明之间的差异

时间:2011-02-23 02:39:05

标签: delphi class type-declaration

有很多方法可以声明新的类类型:

  1. TMyClass1 = TObject;
  2. TMyClass2 = type TObject;
  3. TMyClass3 = class end;
  4. TMyClass4 = class(TObject);
  5. TMyClass5 = class(TObject) end;
  6. 我的理解是,第3,4和5类是TObject的后代,但不清楚1和2是如何不同的,以及3,4和5之间的差异是什么。

    有什么不同吗?

1 个答案:

答案 0 :(得分:31)

  • TMyClass1只是一个别名 - TObject
  • 的另一个名称
  • TMyClass2TObject的强类型别名(我们称之为“type'd types”);然而,将它与类一起使用是非常不寻常的,通常你可以使用它,例如Pointer创建句柄类型或其他内容(请参阅例如Windows.pas中的使用方法)。
  • TMyClass3是一个类,隐含地来自TObject,没有新成员。
  • TMyClass4是一个类,使用简洁的语法显式降序TObject,没有新成员。更常见的是,这用于标记类,其中类本身的唯一性是有趣的 - 通常用于Exception后代
  • TMyClass5是一个类,明确地从TObject下降,没有新成员。声明中的TObject是多余的,但它不会对任何内容造成任何损害。