有很多方法可以声明新的类类型:TMyClass1 = TObject;
TMyClass2 = type TObject;
TMyClass3 = class end;
TMyClass4 = class(TObject);
TMyClass5 = class(TObject) end;
据我了解,第3、4和5类是TObject
的后代,但尚不清楚1和2有何不同,以及3,4和5之间有何不同。
有什么区别吗?
最佳答案
TMyClass1
只是别名-TObject
的另一个名称TMyClass2
是TObject
的强类型别名(我们称它们为“类型类型”);虽然在类中使用它是非常不寻常的,但是通常情况下,例如Pointer
创建句柄类型或其他内容(例如,参见Windows.pas中的用法)。TMyClass3
是一个类,隐式地从TObject
派生,没有新成员。TMyClass4
是一个类,使用简洁的语法从TObject
显式派生,没有新成员。通常,这用于标记类,其中标记类本身的唯一性很有趣-通常用于Exception
后代TMyClass5
是一个类,显式地从TObject
派生,没有新成员。声明中的TObject
是多余的,但使其明确无害。