Java-インターフェース



インターフェースとは

オブジェクト指向-インターフェースを参照下さい。

Javaでは多重継承の概念は取り入れられていません。

それでも複数クラスからの継承を行いたい場合にインターフェース機能を利用します。


インターフェースのメリット

インターフェースのメリットとしては、以下のことが挙げられます。

・クラスの動作をプログラマに明示する。

・分散環境でのオブジェクト利用。


インターフェースの作成

interfaceキーワードを使用して、定数およびメソッドを定義します。

public interface MyInterface1 {
    int temp = 1;
}

extendsによって、既存インターフェースを拡張したインターフェースを定義することもできます。

//インターフェースを拡張したインターフェースを定義する
public interface MyInterface2 extends MyInterface1 {
    String str = "interface";
}

インターフェースの使用

インターフェースを使用するときはimplementsキーワードを使用します。

implementsとは「実装」という意味であり、インターフェースに対応する処理を実装します。

class MyClass implements MyInterface2 {
    public void func1() {
        /* function */
    }
}

実装について

Java言語でのインターフェースとは、メソッドの中身などが存在しないメソッドの宣言文(抽象的なメソッド=Abstract method)とフィールドだけのクラスから構成されます。

インターフェースはclassではなくinterfaceとして宣言され、通常のclassからインプリメントされることにより利用されます。

Javaにおけるインターフェースはクラスではなく、クラスへの要求のセットです。


// 捕食動物を表すインタフェース
public interface Predator {
    // 抽象メソッド
    boolean chasePrey(Prey p); // 餌を追いかける
    void eatPrey(Prey p); // 餌を食べる
}

// Lion implements
public class Lion implements Predator {
    public boolean chasePrey(Prey p) {
        // Lion固有のメソッドの実装
    }

    public void eatPrey (Prey p) {
        // Lion固有のメソッドの実装
    }
}

// Cat implements
public class Cat implements Predator {
    public boolean chasePrey(Prey p) {
        // Cat固有のメソッドの実装
    }

    public void eatPrey (Prey p) {
        // Cat固有のメソッドの実装
    }
}

関連



スポンサード リンク