p.243 クラスの継承とコンストラクタ(引数なしの場合) ・どんなクラスであっても、コンストラクタは省略可能 ・省略すると引数のない&中身のないコンストラクタが自動的に用意される ・基本クラスのオブジェクトを引数のないnewで生成すると、その引数のないコンストラクタが呼ばれる ・派生クラスのオブジェクトを引数のないnewで生成すると: ①基本クラスの引数のないコンストラクタが呼ばれる ②派生クラスの引数のないコンストラクタが呼ばれる ・こうすることで、基本クラスで定義したデータメンバの初期化や基本クラス用の準備作業をコンストラクタに書いておくことにより、 派生クラスのオブジェクト生成時に自動的に実行される ・例: class Slime { //基本クラス public int hp; public Slime { hp = 10; } //コンストラクタ① } class HoimiSlime : Slime { //派生クラス //ここに「public int hp」があるとみなされる public int mp; public HoimiSlime { mp = 20; } //コンストラクタ② } class Game { public play() { HoimiSlime hoimin = new HoimiSlime(); //①②が動作してhpもmpも初期化される : p.243 inheritance06.cs //p.243 inheritance06.cs using System; class MyBase { //基本クラス protected int x; //非公開で継承可能なデータメンバ public MyBase() { //コンストラクタ① Console.WriteLine("ここはMyBase"); x = 10; } } class Derived1 : MyBase { //派生クラス //ここに「protected int x;」があるとみなされる public Derived1() { //コンストラクタ② Console.WriteLine("ここはDerived1"); x = 20; } } class Derived2 : Derived1 { //派生の派生クラス…