Delphi: Method 'Create' hides virtual method of base - but it's right there

后端 未结 2 1972
广开言路
广开言路 2020-12-06 16:01

Consider the hypothetical object hierarchy, starting with:

TFruit = class(TObject)
public
    constructor Create(Color: TColor); virtual;
end;
<
2条回答
  •  囚心锁ツ
    2020-12-06 16:35

    Two solutions:

    type
      TFruit = class(TObject)
      public
        constructor Create(Color: TColor); virtual;
      end;
    
      TApple = class(TFruit)
      public
        constructor Create(); reintroduce; overload;
        constructor Create(Color: TColor); overload; override;
      end;
    

    Or:

    type
      TFruit = class(TObject)
      public
        constructor Create; overload; virtual; abstract;
        constructor Create(Color: TColor); overload; virtual;
      end;
    
      TApple = class(TFruit)
      public
        constructor Create(); override;
        constructor Create(Color: TColor); override; 
      end;
    

提交回复
热议问题