(1)inherited Create(CreateSuspended);//这个是什么意思(2)  procedure TClientDataThread.Terminate;
   begin
      ListBuffer.Free;
      inherited;//这单独使用是什么意思
  end;
看不懂help里面的解释特此来问问大家.

解决方案 »

  1.   

    两者都是调用父类的同名方法(1是调用父类的Create方法,2是调用父类的Terminate方法),只不过第一种情况是父类的Create方法需要传入参数,所以需要完整的写出。
      

  2.   

    相信大家对于“inherited”这个词并不陌生了。但是有些人可能对它有些误解,比如下面一种情况:当有人对你提起“inherited”时,你可能会马上想到“virtual”、“dynamic”和“override”等等。这就是一种误解。之所以产生这样的误解,是因为我们经常覆盖(override)一个虚方法(virtual或者dynamic)后,使用inherited来调用父类的方法。但是要记住的是,inherited并不仅仅只用在override之后。在Object Pascal中,“inherited”只是一个关键字,和virtual、dynamic、override等并没有任何直接联系。“inherited”的完整语法是:inherited XXX(ParamsList);对此说明几点:(1) 上述语法表示调用父类的方法XXX,其中ParamsList表示参数列表。在前面我们已经说过,父类中除private外,其他域的方法对于子类都是可见的(如果没有显式指定域,则编译指令{$M}开启时,隐含为published域,否则为public域)。因此,inherited可以调用父类任何在private域以外的方法。(2) 如果直接使用“inherited”,没有指定方法名和参数,则表示调用父类的同名方法(但当父类有多个该同名方法时——如该方法已被重载,则inherited必须使用完整格式,否则编译器不能确定你到底要调用这些同名方法中的哪一个)。(3) 因为本质上,inherited就是调用父类的某个方法,所以和调用本类的某方法相比,并没有特别的不同。“inherited”仅仅就是告诉编译器:我要调用的是父类而不是其他类的方法而已。所以可以在任何地方使用它,例如条件中: type  TParent = class    procedure OneProc;  end;   TChild = class(TParent)    procedure Proc;  end; implementation procedure TParent.OneProc;begin  {Some code}end; procedure TChild.Proc;begin  if 1 = 1 then      {我这里随便给了一个条件"1 = 1"}    inherited  OneProc;end;