「Java入門」多態性(ポリモーフィズム)を利用するサンプル
書式
関数名(インターフェース 変数)
変数:クラスのインスタンス
使用例
1.インターフェースの定義
package com.arkgame.study;
public interface InterDemo {
// 抽象メソッド
void testFunc();
}
package com.arkgame.study;
public interface InterDemo {
// 抽象メソッド
void testFunc();
}
package com.arkgame.study; public interface InterDemo { // 抽象メソッド void testFunc(); }
2.インターフェースを実装
package com.arkgame.study;
// TestAクラスでインターフェースを実装
class TestA implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestAクラスのメッセージ 1111");
}
}
//TestBクラスでインターフェースを実装
class TestB implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestBクラスのメッセージ 2222");
}
}
//TestCクラスでインターフェースを実装
class TestC implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestCクラスのメッセージ 3333");
}
}
public class PolymorphismDemo {
// 共通の関数を呼び出す
static void TestInterFunc(InterDemo id) {
id.testFunc();
}
public static void main(String[] args) {
//オブジェクトA作成
TestA objA = new TestA();
//関数を利用
TestInterFunc(objA);
//オブジェクトB作成
TestB objB = new TestB();
//関数を利用
TestInterFunc(objB);
//オブジェクトB作成
TestC objC = new TestC();
//関数を利用
TestInterFunc(objC);
}
}
package com.arkgame.study;
// TestAクラスでインターフェースを実装
class TestA implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestAクラスのメッセージ 1111");
}
}
//TestBクラスでインターフェースを実装
class TestB implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestBクラスのメッセージ 2222");
}
}
//TestCクラスでインターフェースを実装
class TestC implements InterDemo {
@Override
public void testFunc() {
System.out.println("TestCクラスのメッセージ 3333");
}
}
public class PolymorphismDemo {
// 共通の関数を呼び出す
static void TestInterFunc(InterDemo id) {
id.testFunc();
}
public static void main(String[] args) {
//オブジェクトA作成
TestA objA = new TestA();
//関数を利用
TestInterFunc(objA);
//オブジェクトB作成
TestB objB = new TestB();
//関数を利用
TestInterFunc(objB);
//オブジェクトB作成
TestC objC = new TestC();
//関数を利用
TestInterFunc(objC);
}
}
package com.arkgame.study; // TestAクラスでインターフェースを実装 class TestA implements InterDemo { @Override public void testFunc() { System.out.println("TestAクラスのメッセージ 1111"); } } //TestBクラスでインターフェースを実装 class TestB implements InterDemo { @Override public void testFunc() { System.out.println("TestBクラスのメッセージ 2222"); } } //TestCクラスでインターフェースを実装 class TestC implements InterDemo { @Override public void testFunc() { System.out.println("TestCクラスのメッセージ 3333"); } } public class PolymorphismDemo { // 共通の関数を呼び出す static void TestInterFunc(InterDemo id) { id.testFunc(); } public static void main(String[] args) { //オブジェクトA作成 TestA objA = new TestA(); //関数を利用 TestInterFunc(objA); //オブジェクトB作成 TestB objB = new TestB(); //関数を利用 TestInterFunc(objB); //オブジェクトB作成 TestC objC = new TestC(); //関数を利用 TestInterFunc(objC); } }
実装結果
TestAクラスのメッセージ 1111
TestBクラスのメッセージ 2222
TestCクラスのメッセージ 3333