≪Java≫ 継承した場合のデフォルトコンストラクタ(superが必要か否か)(メモ)

//スーパークラス(親クラス)
class AnimalC{
 int n;
}

//サブクラス(子クラス)
class DogC extends AnimalC{

 //オリジナルのコンストラクタ
 DogC(int n){
  this.n = n;
 }
  ↑ オリジナルのコンストラクタを書いた場合は、↓ ① を記述しないとNG

 //デフォルトコンストラクタの呼び出し
 DogC(){ super(); } — ①
  ↑ こうやって、親クラスのデフォルトコンストラクタを明示しておなかいと、実行クラスの ② でコンパイルエラーになる。

}

//実行クラス
public class ExecC {
 public static void main(String[] args) {

  //親クラスのオブジェクト作成
  AnimalC a1 = new AnimalC();
   ↑ 親クラスは暗黙的にデフォルトコンストラクタがあるので、問題なし。

  //子クラスのオブジェクト作成
  DogC d1 = new DogC(); — ② 上記①参照
  DogC d2 = new DogC(10);
 }
}



引っ越し前の記事
シェアする
senをフォローする
プレミア商品・お得商品情報局(予約・再販情報も)


タイトルとURLをコピーしました