オーバーロードされていないCreateを導入するだけで、継承されたCreateを非表示にできます。2つのオーバーロードされたCreateが必要なため、オプションの2番目のパラメーターを使用してそれらを1つのCreateにマージできます。
TTest = class(TObject)
public
constructor Create(A:Integer; B: Integer = 0);
end;
これにより、コンパイラに警告が表示され、デフォルトのパラメータなしコンストラクタが非表示になっていることが通知されます。警告を取り除くには、次のように非表示コンストラクターを宣言できます。
TTest = class(TObject)
public
constructor Create(A:Integer; B: Integer = 0); reintroduce;
end;
または、これが不可能な場合は、最初の作成を導入する中間クラスを導入し、次にオーバーロードされた2番目のクラスを含む最終クラスを導入できます。
preTest = class(TObject)
public
constructor Create(A:Integer); reintroduce;
end;
TTest = class(preTest)
public
constructor Create(A,B:Integer);overload;
end;