没有说清楚![:D]看看这里的解释: 准确的说,这是一种编译器提供的原始二次识别的方法.
"我定义很多的类,当然,他们是一个系统的,然后,我把它们统统成为某某类,
当你需要某个类或者类的实例(通常是后者)的时候,你就告诉我那个类的名称,
然后,我就给你那个类,或者类的实例"其实这也不清楚,在后面,
"你是一个猪,猪类,他是一个马,马类,我是一个头人,人类,"
好了,"我们这些类都统统称为动物类"(实际生活中有动物类吗[?]没有!
都是抽象出来的概念)那么,动物类的实例我们称为某个动物,
现在,屠宰场要买一个动物,好!到底是要一个猪呢,还是一个马吗[?]反正不会是一头人啦.
这样,我们送去一个猪类或者马类(记住,这是类型),不管如何,屠宰场就会得到一个动物.
最后,某个人类的实例就有得吃了[:D]
好好想想,然后对照下面,
Type
TControlCls = Class of TControl;
function CreateComponent(ControlCls: TControlCls): TControl;
//这里是在问"你是给我送个马类还是猪类呢[?]"
//结果呢,下面的代码送了一个窗口类[:)]
begin
result:=ControlCls.Create(Form1);
...
end;
function CreateComponent(ControlCls: TControl): TControl;
//在问,你要那一个猪[?]
//答:我要窗口1的那个猪[^]
begin
result:=ControlCls.Create(Form1);
...
end;
好了,这下没有明白的话,那真是猪.[:)] 最后一种表达: 你需要什么样的类型,那好,你告诉我你要的类型,我给建一个这样的对象出来。 [:(!][:(!]声明,千万不要误会,我没有骂人,我想这样说,您的印象非常之深刻,更好理解.
|