Java/インターフェース

出典: フリー教科書『ウィキブックス(Wikibooks)』

Javaのインターフェースは、クラスが実装しなければならない動作を記述するために使用される抽象的な型です。 プロトコルに似ています。 インターフェイスは、キーワードinterfaceを使って宣言され、メソッドシグネチャーと定数宣言(staticとfinalの両方を宣言する変数宣言)のみを含むことができます。

Java 8以前のバージョンでは、インターフェースのすべてのメソッドに実装(メソッドボディ)は含まれません。

Java 8からは、デフォルトメソッドと静的メソッドがインターフェイス定義に実装を持つことができるようになりました。

Java 9で、プライベートメソッドとプライベート静的メソッドが追加された。現在、Javaのインターフェースは最大6種類まで持つことができます。

インタフェースはインスタンス化することはできず、実装(implement)されます。 インターフェースを実装するクラスは、インターフェースに記述されたデフォルト以外のメソッドをすべて実装するか、抽象クラスである必要があります。 Javaでは、オブジェクトの参照にインターフェイスの型を指定することができます。 この場合、参照はnullであるか、インターフェイスを実装したオブジェクトに結びつけられるかのどちらかでなければなりません。

インターフェイスを使う利点の1つは、多重継承をシミュレートできることです。 Javaでは、全てのクラスは、java.lang.Object(Javaの型システムのルートクラス)を除いて、厳密に1つのベースクラスを持たなければならず、クラスの多重継承は許されません。 しかし、インタフェースは複数のインタフェースを継承し、クラスは複数のインタフェースを実装することができます。