Javaちょこっとリファレンス
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 {

}

このエントリーをはてなブックマークに追加

Java基本カテゴリ

HOMEへ戻る TOPへ戻る