つまりどころ〜
こんにちは。
Java Silver来年ほんきだす。
デフォルトコンストラクタ
インスタンスが生成される際に自動的に呼び出されるメソッドのこと。
コンストラクタを1つも定義しない場合、自動的にデフォルトコンストラクタと呼ばれるコンストラクタが作成される。
下記のようなクラスを作った場合、Hoge() {}
というデフォルトコンストラクタが作成される。
class Hoge {
}
こんな感じで。
class Hoge {
Hoge() {
}
}
引数なしコンストラクタの意味・・!
コンストラクタは実行される前に必ず親クラスのコンストラクタを呼び出すから。
実際には下記のようなコードが生成される。
class Hoge {
Hoge() {
super(); // 親クラスのコンストラクタを呼び出す
}
}
注意点
継承しているクラス(Hoge)、継承されている親クラスがある(Parent)場合、
親クラスにデフォルトコンストラクタつくる必要がある。
class Hoge extends Parent {
Hoge() { //Hogeのコンストラクタ実行時にsuper()が実行される。
} //Parentにデフォルトコンストラクタが作成されてない場合、コンパイルエラー
}
super();は、最初によばないとだめだぞ〜。
class Hoge {
Hoge() {
System.out.println("だめだめー");
super(); // 親クラスのコンストラクタを呼び出す
}
}
アウトプットして、ちしき固めていくぞ〜。