デザイナーが始めるプログラミング

グラフィックデザインを経験後、プログラマーへと転身すべく日々の勉強を書き綴った奮闘日記

コンストラクタの注意点

またまた基本的な事メモ汗

コンストラクタを定義する際に下記の記述はコンパイルエラーに

なるので要注意しないといけない。

 

class SuperA{

 SuperA(String str){System.out.println("Aコンストラクタ");}

}

class B extends SuperA{

 B(){System.out.println("Bコンストラクタ");}

}

public class ConstTest {

 public static void main(String args) {

 B b = new B();

 }

}

 

サブクラスをインスタンスした際にスーパークラス

コンストラクタが実行されるんですが、スーパークラスに引数ありの

コンストラクタを定義していた場合には下記のどちらかを明示的に

記載しないとコンパイルエラーになってしまいます。

 

class SuperA{

 SuperA(){}

 SuperA(String str){ 

  System.out.println(str);

  }

}

class B extends SuperA{

 B(){

  super("Aコンストラクタ");

  System.out.println("Bコンストラクタ"); }

}

public class ConstTest {

 public static void main(String args) {

   B b = new B();

 }

}

 

要注意です。