「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が存在");
}
}
}
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.子クラスの定義
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.子クラスのオブジェクトは親のメソッドを呼び出す
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が存在