-1

C#私は2つのコンストラクタを持つクラスを持っています

public class GObject {

    public GObject(){
        // The default constructor
    }

    public GObject(int xPos, int yPos){
        // Second constructor
    }

}

これは、このようなサブクラスを作成するのに有効ですBlockか?

public class Block : GObject {

    // Sub class methods go here, no special constructor

}

そしてBlock、2番目のコンストラクターでインスタンス化しますか?

Block myBlock = new Block(10, 15);
4

2 に答える 2

11

で定義された 2 つのパラメーターのコンストラクターBlockがないため、最終行を記述できません。コンパイルされません。

チェーンコンストラクターを次のように使用できますBlock

public Block(int xPos, int yPos) : base(xPos, yPos)
{}

その場合:

Block myBlock = new Block(10, 15);

うまくいきます。

于 2013-01-08T12:38:04.910 に答える
2

デフォルトでは、コンストラクターを明示的に記述しない場合。コンパイラーは、パラメーターなしでデフォルトのコンストラクターを作成します。

あなたの場合、Blockコンストラクターが定義されていないため、パラメーターのないコンストラクターのみが作成されます。Blockしたがって、 2つのパラメータを使用してオブジェクトを作成することはできません。

于 2013-01-08T12:47:13.783 に答える