「Java入門」多態性(ポリモーフィズム)を利用するサンプル

書式
関数名(インターフェース 変数)
変数:クラスのインスタンス
使用例
1.インターフェースの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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.インターフェースを実装

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

Java

Posted by arkgame