有很多方法可以声明新的类类型:
TMyClass1 = TObject;
TMyClass2 = type TObject;
TMyClass3 = class end;
TMyClass4 = class(TObject);
TMyClass5 = class(TObject) end;
我的理解是,第3,4和5类是TObject
的后代,但不清楚1和2是如何不同的,以及3,4和5之间的差异是什么。
有什么不同吗?
答案 0 :(得分:31)
TMyClass1
只是一个别名 - TObject
TMyClass2
是TObject
的强类型别名(我们称之为“type'd types”);然而,将它与类一起使用是非常不寻常的,通常你可以使用它,例如Pointer
创建句柄类型或其他内容(请参阅例如Windows.pas中的使用方法)。TMyClass3
是一个类,隐含地来自TObject
,没有新成员。TMyClass4
是一个类,使用简洁的语法显式降序TObject
,没有新成员。更常见的是,这用于标记类,其中类本身的唯一性是有趣的 - 通常用于Exception
后代TMyClass5
是一个类,明确地从TObject
下降,没有新成员。声明中的TObject
是多余的,但它不会对任何内容造成任何损害。