0

複数のサブクラスがある場合は、継承とコンストラクターについて正しく考えていることを確認したいだけです。私のクラスは次のようになります。Shapeは基本クラスであり、他の派生クラスです。

Shape<-----Shape2D<------Box

このコードは正しいですか?それは機能していますが、これが最善の方法かどうか疑問に思っていますか?

    public Shape(int inputA, int inputB)
    {
        valueA = inputA;
        valueB = inputB;
    }

    public Shape2D(int inputA, int inputB) : base(inputA, inputB)
    {

    }

    public Box(int inputA, int inputB) : base(inputA, inputB)
    {

    }
4

2 に答える 2

1

コード例から飛び出すものは何もありません。チェーンは正常に見え、構築時に、Box期待どおりにデータが入力されます。valueAvalueB

「最良の方法」が何を意味するのかわからない-この方法でのコンストラクターの連鎖は絶対に問題ありません。

于 2012-06-08T09:04:53.543 に答える
1

はい、それは私には正しいようです。

子孫クラスで特別な初期化を実行したくない場合は、初期化タスクを階層内の基本クラスに委任できます。メンバー変数はそこで定義されているため、必要な初期化を処理できます。

子孫に特別なものが必要な場合は、そこで特別な初期化を処理する必要があります。しかし、これらの初期化がまったく同じである必要があるまでは、これが推奨される方法だと思います。

あなたはあなたの質問でこれについて何か考えましたか?

于 2012-06-08T09:07:51.090 に答える