「Java8」superで親クラスのコンストラクタを呼び出す
環境
JavaSE1.8
Eclipse 4.14
書式
public class 子クラス名 extends 親クラス名 {
public 子クラス名() {
super();
処理コード
}
public 子クラス名(データの型 引数) {
super(引数);
処理コード
}
super で親クラスのコンストラクタを呼び出します。
使用例
1.親クラスの定義
package com.arkgame.study;
//親クラス
public class Parent {
// 親クラスのコンストラクタ
public Parent() {
System.out.println("引数なしのコンストラクタ11");
}
// 引数1つ
public Parent(String target) {
System.out.println("文字列型ありコンストラクタ22" + target);
}
}
2.子クラスの定義
extendsで親クラスを継承しています。
サンプルコード
package com.arkgame.study;
//子クラス 継承
public class Child extends Parent {
// 子クラスのコンストラクタ 引数なし
public Child() {
super();
System.out.println("AA");
}
// 子クラスのコンストラクタ 引数があり
public Child(String str) {
super(str);
System.out.println("BB");
}
}
3.動作確認
package com.arkgame.study;
public class Test {
public static void main(String[] args) {
// 子クラスのコンストラクタ(引数なし)を呼びだす
Child cd = new Child();
// 子クラスのコンストラクタ(引数あり)を呼び出す
Child cde = new Child("yamada");
}
}
実行結果
引数なしのコンストラクタ11
AA
文字列型ありコンストラクタ22yamada
BB