「Java」抽象クラス(abstract class)と抽象メソッド(abstract method)を継承する方法

■ 1.親クラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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が存在");
}
}
}
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が存在"); } } }
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.子クラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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.子クラスのオブジェクトは親のメソッドを呼び出す

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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();
}
}
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(); } }
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