ポリモーフィズム
動いているインスタンスをインスタンスの元となった型とは別の型で扱える仕組み
ポリモーフィズムが成り立つ条件は以下二つ
継承関係にある
実現の関係にある
企業組織での例
実装
子クラス1ーエンジニアクラス
Engineer.java
public class Engineer extends BuSho {
public Engineer(String name,String busho,String skill) {
super(name,skill,busho);
}
}
子クラス2ーHRクラス
HR.java
public class HR extends BuSho {
HR(String name, String skill,String busho) {
super(name, busho, skill);
}
}
親クラス
名前、スキル、部署は共通フィールドなのでまとめておく
部署情報の表示メソッドも処理内容が共通なのでまとめる
BuSho.java
public class BuSho {
String name;
String busho;
String skill;
BuSho(String name,String busho,String skill){
this.name=name;
this.busho=busho;
this.skill=skill;
}
public void display() {
System.out.println(name);
System.out.println(busho);
System.out.println(skill);
}
}
部署の情報を取得して、それぞれの情報を表示するクラス
Shain.java
public class Shain {
BuSho busho;
public Shain(BuSho busho) {
this.busho=busho;
}
public void display() {
busho.display();
}
}
Mainクラス
社員インスタンスの引数に部署の変数を入れるとそれぞれの情報が表示
Main.java
public class Main {
public static void main(String[] args) {
Engineer en = new Engineer("斎藤", "開発", "Java");
HR h = new HR("中村", "人事", "excel");
Shain s = new Shain(en);
s.display();
Shain s2 = new Shain (h);
s2.display();
}
}