笔误: j为str. 对不起了!

解决方案 »

  1.   

    之所以这样问.因为我发现:
    var
      a:TComponent;
    begin
      a:=TControl.Create(self);
      a.Free ;
    end;
    能成功运行.
    var
      a:TControl;
    begin
      a:=TComponent.Create(self);
      a.Free ;
    不能运行.
    这就是说明定义父类后,可以直接构造子类而不出错.
    而相反, 定义为子类,不可以构造出父类.
    可是为什么不行呢?
    请大家给予指点.
      

  2.   

    子类包含有父类的构造和析构函数,但父类却不能包含子类的构造和析构函数。
    故以一下成立:
    var
       tsList:TStrings;
    begin
       tsList:=TStringList.Create();
       tsList.Free;