明示的にコンストラクタを書かなかった場合
コンストラクタを明示的に書かないと、裏で、引数なしのコンストラクタを作成し、それが暗黙的に呼び出される。
さらに、親クラスがあれば、親クラスの引数なしコンストラクタを実行してくれる。
例として、以下のようなクラスを考えてみた。
人クラス
↑
桃太郎クラス
■人クラス(Human.java)
public class Human { // コンストラクタ public Human() { System.out.println("私は人として、生を受けました。"); } }■桃太郎クラス(Momotaro.java)
public class MomoTaro extends Human { public void GiveKibiDango() { System.out.println("きびだんご。どうぞ。"); } }■メイン関数(Main.java)
public class Main{ public static void main (String[] args) { MomoTaro mtaro = new MomoTaro(); mtaro.GiveKibiDango(); } }
■結果
たしかに、親クラスの引数なしコンストラクタが呼ばれた。
明示的にコンストラクタを書いた場合
書いたコンストラクタが呼ばれる。親クラスのコンストラクタも勝手に呼ばれる。