LoginSignup
0
0

More than 1 year has passed since last update.

ウマ娘で学ぶポリモーフィズム(多態性)

Posted at

ポリモーフィズム(多態性)の特徴とは・・・

あるメソッドの呼び出しに対して、それぞれのオブジェクト毎に異なる動きを実現出来ること。

ウマ娘を例にすると

”あるメソッド”は、以下HorseGirlクラスのcallメソッドとする。

HorseGirl.java
package sample;

// ウマ娘クラス(抽象クラス)
public abstract class HorseGirl {
	// トレーナーを呼ぶ!
	public abstract void call();
}

これをもとに、各オブジェクトに異なる動きを与える。

AirGroove.java
package sample;

// ウマ娘クラスを継承したエアグルーヴクラス
public class AirGroove extends HorseGirl{

	@Override
	public void call() {
		System.out.println("たわけ!");
		
	}

}
RiceShower.java
package sample;

//ウマ娘クラスを継承したライスシャワークラス
public class RiceShower extends HorseGirl{

	@Override
	public void call() {
		System.out.println("お兄様!");
		
	}

}
AgnesTachyon.java
package sample;

// ウマ娘クラスを継承したアグネスタキオンクラス
public class AgnesTachyon extends HorseGirl{

	@Override
	public void call() {
		System.out.println("モルモットくぅん!");
		
	}

}

以下、メインクラス。

Main.java
package sample;

public class Main {

	public static void main(String[] args) {
		
		HorseGirl ag = new AirGroove();
		HorseGirl rs = new RiceShower();
		HorseGirl at = new AgnesTachyon();
		
		// エアグルーヴクラスの実行
		System.out.println("――エアグルーヴが呼んでるよ――");
		ag.call();
		System.out.println("");
		// ライスシャワークラスの実行
		System.out.println("――ライスシャワーが呼んでるよ――");
		rs.call();
		System.out.println("");
		// アグネスタキオンクラスの実行
		System.out.println("――アグネスタキオンが呼んでるよ――");
		at.call();
		System.out.println("");

	}

}



以下、出力結果
image.png

この通り、同じcallメソッドを呼んでいるにも関わらずそれぞれのウマ娘(オブジェクト)が別の動きをすることが出来ることが分かる。

参考資料

0
0
0

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