类引用(TClassACls)就是类(TClassA)的类型,可以声明一个类引用变量(T)并赋给它一个子类(TClassB),可以通过这个变量创建对象的实例(T.Create)。
代码:
unit Unit1;
{
* created by HouSoft
* 2011/12/21
* www.yryz.net
}
interface
uses
Sysutils;
type
// 定义TClassA 的引用
TClassACls = class of TClassA;
TClassA = class
procedure Test; virtual; abstract;
end;
TClassB = class(TClassA)
procedure Test; override;
end;
implementation
{ TClassB }
procedure TClassB.Test;
begin
WriteLn(ClassName);
end;
procedure Test;
var
T : TClassACls;
TC : TClassA;
begin
T := TClassB; //类引用
TC := T.Create;
WriteLn(TC.ClassName); // 输出 TClassB
TC.Test; // 输出 TClassB
Sleep(MaxInt);
end;
initialization
Test;
end.