HOME > インターフェイス(Interface)
インターフェイス(Interface)
インターフェイスは、メンバ変数(定数)とメソッド名のみ定義したクラスのようなものです。
あるクラスを定義するときインターフェイスを実装すると、インターフェイスに定義してあるメソッドの実装は必須になります。
チームで開発する時に共通インターフェイスの実装を義務付けると、製造者が異なっても統一感のあるクラスにすることができます。
【インターフェイスまとめ】
・インターフェイスはインスタンス化できない。
・インターフェイスには定数とメソッド名のみ定義できる。(JavaSE7以前)
・インターフェイスに定義した変数は「public static final」が付いているものとみなされる。
・インターフェイスを実装したクラスはインターフェイス内のメソッドの実装は必須となる。
・インターフェイスは複数実装できる。
・クラスにインターフェイスを実装するには、「implements」句を用いる。
・メソッドにアクセス修飾子を省略した場合は、「public」とみなされる。
JavaSE8からは、インターフェイスに通常のメソッド(デフォルトメソッド)を定義できるようになりました。
インターフェイスのサンプル
- ★インターフェイス
-
public interface SampleInterface { String STR_HOGE = "hoge"; //public static finalが付いているものとみなされる //メソッド定義1 void method1(); //戻り値、メソッド名、引き数のみ定義する //メソッド定義2 void method1(String str); //戻り値、メソッド名、引き数のみ定義する }
- ★インターフェイスを実装したクラス
-
public class Sample implements SampleInterface { //SampleInterfaceを実装 //メソッドの実装1 (実装しないとエラーになる) @Override public void method1() { System.out.println("method1:" + STR_HOGE); } //メソッドの実装2 (実装しないとエラーになる) @Override public void method1(String str) { System.out.println("method1:" + str); } }
- ★実行クラス
-
public class Test { public static void main(String args[]){ Sample s = new Sample(); s.method1(); s.method1("test"); } }
- 実行結果
- C:\>java Test method1:hoge method1:test
★インターフェイスは複数同時に実装することもできます。
その場合は、インターフェイスをカンマで区切って並べます
- インターフェイスを複数実装する例
-
public class Sample implements InterfaceA, InterfaceB, InterfaceC { }