が始まる、仮想的なオブジェクト階層を考えてみましょうすぐそこです:デルファイ:メソッド「作成」をベースの仮想メソッドを隠し - それは
TFruit = class(TObject)
public
constructor Create(Color: TColor); virtual;
end;
とその子孫:
はTApple = class(TFruit)
public
constructor Create(); overload; virtual;
constructor Create(Color: TColor); overload; override; //deprecated. Calls other constructor - maintaining the virtual constructor chain
end;
考えはここにあります私はをオーバーライドしました仮想クラスのコンストラクタ、オーバーロードも仮想であることがあります。
Delphiは文句:
メソッド '作成' 基本型の仮想メソッドを隠し 'TFruit'
それはそれを隠していない場合を除き - それはすぐそこです!
- 私オーバーライド仮想祖先のメソッド、および
- 私は過負荷にそれは別のバージョン
との契約は何ですか?
「メソッド 'Create'は、基本タイプ 'TFruit'の仮想メソッドを隠す」と表示されます。あなたは本当に "基本型" TApple '"を得ていますか? – hvd
@RBAこれを避けるために、 'reintroduce;'を使うことはできますが、この場合は警告が間違っています。 – hvd
これはDelphi 5に固有のものですか? – EMBarbosa