「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