「Java」親子クラス継承のコンストラクタ(constructor)とメソッド(method)を呼び出す方法
説明
1.引数なしコンストラクタ
2.引数ありコンストラクタ
3.Override(オーバーライド)メソット
親クラスの定義
package com.arkgame.study; public class ParentSampleClass { public ParentSampleClass() { System.out.println("Parent class 引数なし"); } // コンストラクタ 引数あり public ParentSampleClass(String username) { System.out.println("Parent class 引数あり"); } protected void protectedMthod() { System.out.println("parentc class protected method is called"); } public void pubMethod() { System.out.println("parentc class public method is called"); } }
子クラスの定義
package com.arkgame.study; public class ChlidSampleClass extends ParentSampleClass { // コンストラクタ 引数なし public ChlidSampleClass() { System.out.println("Child Class 引数なし"); } // コンストラクタ 引数あり public ChlidSampleClass(String target) { System.out.println("Child Class 引数あり"); } public void pubmethod() { System.out.println("chlid pubmethod is called"); } }
子クラスのオブジェクトは親クラスを利用する
package com.arkgame.study; public class PachildConstDemo { public static void main(String[] args) { System.out.println("********コンストラクタ 引数なし オブジェクト**************"); // コンストラクタ 引数なし ChlidSampleClass csA = new ChlidSampleClass(); // 親クラスのpublicメソッド csA.pubMethod(); // 子クラスのメソッド csA.pubmethod(); // 親クラスのprotectedメソッド csA.protectedMthod(); System.out.println("********コンストラクタ 引数あり オブジェクト**************"); // コンストラクタ 引数あり ChlidSampleClass csB = new ChlidSampleClass("AB88"); // 親クラスのpublicメソッド csB.pubMethod(); // 子クラスのメソッド csB.pubmethod(); // 親クラスのprotectedメソッド csB.protectedMthod(); } }
実行結果
********コンストラクタ 引数なし オブジェクト**************
Parent class 引数なし
Child Class 引数なし
parentc class public method is called
chlid pubmethod is called
parentc class protected method is called
********コンストラクタ 引数あり オブジェクト**************
Parent class 引数なし
Child Class 引数あり
parentc class public method is called
chlid pubmethod is called
parentc class protected method is called