「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が存在

Java

Posted by arkgame