Java ポリモフィズムのサンプル

Javaのポリモフィズムのサンプルです。

ポリモフィズム

  • メソッド名は同じですが、メソッドを実行すると異なる動きをします。
  • 複数のクラスで同じインターフェースを実装した場合、共通のメソッドを持つことになります。
    →その結果、メソッドを呼び出す際は、同じインターフェース型とメソッドになります。
    →ただし、メソッドが実行する内容はオーバーライドされたメソッドによりそれぞれ異なります。

コード

ポリモフィズムのサンプルです。
11,18行目の2つのクラスは7行目のインターフェースを実装しています。
27行目は、11行目のClass1クラスをインスタンス化しています。
28行目は、18行目のClass2クラスをインスタンス化しています。
32,33行目は同じexe01メソッドを実行していますが出力される内容は異なります。
36行目の引数の型はインターフェース型になっています。

package test1;
 
/**
 *  ポリモフィズムのサンプル
 */
//インターフェースを定義
interface InterfaceA{
	void print1(); // 抽象メソッド
}
// Class1は、インターフェースを実装
class Class1 implements InterfaceA {
	@Override
	public void print1() {
		System.out.println("Class1のメソッド");
	}
}
//Class2は、インターフェースを実装
class Class2 implements InterfaceA {
	@Override
	public void print1() {
		System.out.println("Class2のメソッド");
	}
}
public class Test1 {
	public static void main(String[] args) {
		// インスタンス化
		Class1 c1 = new Class1();
		Class2 c2 = new Class2();
		
		// メソッドが実行する内容はオーバーライドされた
		// メソッドによりそれぞれ異なる。
		exe01(c1); // "Class1のメソッド"が出力される
		exe01(c2); // "Class2のメソッド"が出力される
	}
	// 同じインターフェース型でアクセスできる
	static void exe01(InterfaceA c){
		c.print1();
	}
}

関連の記事

Java クラスのサンプル
Java コンストラクタのサンプル
Java メンバー変数とローカル変数
Java クラス型の型変換とキャストのサンプル
Java instanceof演算子のサンプル
Java thisのサンプル
Java インターフェースのサンプル
Java abstract修飾子のサンプル
Java シングルトンのサンプル
Java staticメソッドとstatic変数のサンプル




△上に戻る