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