TCmd = Class(TObject)
  protected
    procedure GetData();virtual;
  end;  TCmdDvc = Class(TCmd)
  protected
    procedure GetData();override;
  end;
  
  procedure TCmdDvc.GetData();
  begin
    //在这如何调用 TCmd.GetData
  end;

解决方案 »

  1.   

    virtual是虚的,procedure TCmdDvc.GetData();
      begin
        //在这如何调用 TCmd.GetData
      end;具体的实现是要你自己写的,就写在上面
      

  2.   

    自己写当然可以,TCmd = Class(TObject)
      protected
        procedure GetData();
      end;  TCmdDvc = Class(TCmd)
      protected
        procedure GetData();override;
      end;  procedure TCmd.GetData();
      begin
        //做某一个操作,比如打印数据,用比较多的代码
      end;
      
      procedure TCmdDvc.GetData();
      begin
        //在这如何调用 TCmd.GetData,不要复制TCmd.GetData中的源码!
      end;
      

  3.   

    TCmd = Class(TObject)
      protected
        procedure GetData();virtual;
      end;  TCmdDvc = Class(TCmd)
      protected
        procedure GetData();override;
      end;
      
      procedure TCmdDvc.GetData();
      begin
        Inherited;  //在这如何调用 TCmd.GetData
      end;
      

  4.   

    不好意思,我的提问有错,如是procedure,可用inherited,保留字实现,但是函数该如何做呢?
     
    TCmd  =  Class(TObject)  
       protected  
           function GetData(): Integer;  
       end;  
     
       TCmdDvc  =  Class(TCmd)  
       protected  
           function GetData(): Integer;override;  
       end;  
     
       function TCmd.GetData(): Integer;  
       begin  
           //Result := 结果;  
       end;  
         
       function TCmdDvc.GetData()(): Integer;  
       begin  
           //在这如何调用 TCmd.GetData,然后对其返回值作进一步处理
       end;
      

  5.   

    procedure TCmdDvc.GetData();
      begin
        //在这如何调用 TCmd.GetData,不要复制TCmd.GetData中的源码!
        inherited;
      end;
      

  6.   

    function TCmdDvc.GetData(): Integer;  
       begin  
         Result := inherited GetData;    
         ....   
       end;
      

  7.   

    Result := inherited GetData;有这样写法?OK,我还真不敢用这样的写法呢,谢谢结帖了