Java では、インターフェイスは抽象メソッドと定数のセットを定義する (またはメソッドも定数も定義しない) 抽象型です。インターフェイスは、特定の種類のオブジェクトが持つべき動作を指定する規則です。
Java インターフェースに関する重要な情報を次に示します。
-
インターフェースを定義します。
キーワードを使用して
interface
インターフェイスを定義します。interface MyInterface { // 声明抽象方法 void myMethod(); // 声明常量(默认为 public static final) int MY_CONSTANT = 10; }
-
インターフェースの実装:
クラスは、
implements
キーワードを通じて実装された 1 つ以上のインターフェイスを実装できます。class MyClass implements MyInterface { @Override public void myMethod() { System.out.println("Implementing myMethod"); } }
-
インターフェースと抽象クラスの違い:
- インターフェイス内のメソッドはデフォルトで抽象であり、メソッド本体は含まれません。抽象クラスには抽象メソッドと具象メソッドを含めることができます。
- クラスは複数のインターフェイスを実装できますが、継承できるクラスは 1 つだけです。
- インターフェイス内のフィールドの型は
public static final
デフォルトでは定数であり、抽象クラスにはさまざまな型のフィールドを含めることができます。
-
インターフェイスの多重継承:
インターフェイスは複数のインターフェイスから継承できます。
interface InterfaceA { void methodA(); } interface InterfaceB { void methodB(); } interface InterfaceC extends InterfaceA, InterfaceB { void methodC(); }
-
デフォルトの方法:
Java 8 では、インターフェイスのデフォルト メソッドが導入され、インターフェイス内のメソッドのデフォルト実装を提供できます。
interface MyInterface { void myMethod(); default void defaultMethod() { System.out.println("Default method implementation"); } }
-
静的メソッド:
Java 8 では、インターフェイスに静的メソッドも導入されました。
interface MyInterface { void myMethod(); static void staticMethod() { System.out.println("Static method in interface"); } }
-
インターフェースの実際の応用:
- インターフェイスはポリモーフィズムを実装するために使用されます。これにより、異なるクラスが同じ動作インターフェイスを持つことができますが、実装方法は異なります。
- インターフェイスは、クラスが持つべきメソッドと定数を記述するために使用される設計規則です。
- Java の標準ライブラリでは、
java.util.List
インターフェイスなどのインターフェイスが広範囲に使用されます。
インターフェイスは Java の非常に重要な概念であり、コードの構造を整理および標準化する方法を提供し、より柔軟なポリモーフィズムをサポートします。