“构造一般不依赖与对象,由类直接调用,构造也可以声明为虚拟的,当构造由类来引用时,虚拟的构造跟静态的构造没有什么区别,当构造由对象实例来引用时,构造就具有多态性。”  看书是看了这么一段话不是很理解   。             
    请问大侠:       1.    什么叫“构造也可以声明为虚拟的,当构造由类来引用时,虚拟的构造跟静态的构造没有什么区别” 
      2.    “当构造由对象实例来引用时,构造就具有多态性。”  什么时候构造由对象来引用,如何实现多态?   
             (请用代码举例说明~  3Q)!

解决方案 »

  1.   

      TQConBase = class  //基类
      private
    ......
        procedure UpdatePost;
      protected  public
     
        FTComm: TComm; //spcomm 串口类成
        constructor Create(sComName:String);virtual;
        destructor Destroy;
        procedure Start(aInters:Integer);
        procedure Suspend;
        procedure Stop;
        function InitClass(aiDetNum,aiBegad:Integer):boolean;virtual;
        function CheckDet(out iNormal:Integer):boolean;//
        //property FTCommt: TFTComm read FTCPClient;
      end;  TQConTC200 = class(TQConBase)
      private
        sbuf,RBuf:array[0..8] of byte;
        procedure ComSendMSG();override;
        procedure ComRevMSG(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);override;
        function CheckOutRev():Boolean;
      public
        constructor Create(sComName:String);override;
        function InitClass(aiDetNum,aiBegad:Integer):boolean;override;
      end;
    这样不同的子类就可以有不同的构造方法,