LoginSignup
0
0

Javaのポリモーフィズム

Posted at

ポリモーフィズム

動いているインスタンスをインスタンスの元となった型とは別の型で扱える仕組み

ポリモーフィズムが成り立つ条件は以下二つ

継承関係にある
実現の関係にある

企業組織での例

image.png

実装
子クラス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();

	}

}
0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0