「Java」抽象クラス(abstract class)と抽象メソッド(abstract method)を継承する方法
■ 1.親クラスの定義
package com.arkgame.java.study; import java.util.Map; //abstract class 抽象クラス public abstract class ParentDemo { // Map<String,Integer> private Map<String, Integer> userMp = null; // abstract method 抽象メソッド public abstract Map<String, Integer> userNameData(); // constructor public ParentDemo() { this.userMp = this.userNameData(); } // print method public void print() { if (this.userMp.containsKey("A001")) { System.out.println("Parent class method is called,Key:A001が存在"); } if (this.userMp.containsKey("B002")) { System.out.println("Parent class method is called,Key:B002が存在"); } if (this.userMp.containsKey("C001")) { System.out.println("Parent class method is called,Key:C001が存在"); } } }
■ 2.子クラスの定義
package com.arkgame.java.study; import java.util.HashMap; import java.util.Map; //抽象クラスの継承 public class ChildDemo extends ParentDemo { //オーバーライド @Override public Map<String, Integer> userNameData() { // Map<String,Integer> Map<String, Integer> stMp = new HashMap<>(); stMp.put("A001", 100); stMp.put("B002", 200); stMp.put("C003", 300); // return map value return stMp; } }
■ 3.子クラスのオブジェクトは親のメソッドを呼び出す
package com.arkgame.java.study; public class ParChildMain { public static void main(String[] args) { // child class object 子クラスオブジェクト作成 ChildDemo chdObj = new ChildDemo(); // parent class method is called 親クラスのメソッドを利用 chdObj.print(); } }
■4.実行結果
Parent class method is called,Key:A001が存在
Parent class method is called,Key:B002が存在