Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのネストされたインターフェースとは?基本ルールと実装例を解説

Javaでは、インターフェースの中に別のインターフェースを宣言したり、クラスの中にインターフェースを宣言したりすることができます。このように他の型の内部で宣言されたインターフェースは、「ネストされたインターフェース(nested interface/入れ子インターフェース)」と呼ばれます。

ネストされたインターフェースのルール

ネストされたインターフェースを扱う際には、以下のルールが適用されます。

  • インターフェース内で宣言されたネストされたインターフェースは、必ずpublicである必要があります。
  • クラス内で宣言されたネストされたインターフェースは、任意のアクセス修飾子(private、protected、publicなど)を使用できます。
  • ネストされたインターフェースは、宣言時に明示しなくてもデフォルトでstaticになります。

ネストされたインターフェースの実装例

次の例では、Animalクラスの中にActivityインターフェースをネストして宣言し、Dogクラスがそれを実装しています。ネストされたインターフェースを実装する際は、「外部クラス名.インターフェース名」の形式で参照する点に注目してください。

class Animal {
    interface Activity {
        void move();
    }
}
class Dog implements Animal.Activity {
    public void move() {
        System.out.println("Dogs can walk and run");
    }
}
public class Tester {
    public static void main(String args[]) {
        Dog dog = new Dog();
        dog.move();
    }
}

実行結果

Dogs can walk and run

ポイントまとめ

  • ネストされたインターフェースへの参照は、「Animal.Activity」のようにドット区切りで指定します。
  • インターフェースのメンバーは暗黙的にpublicかつstaticであるため、インターフェース内のネストされたインターフェースも自動的にpublic staticとして扱われます。
  • クラス内に宣言した場合は、カプセル化の観点からprivateやprotectedとして定義することも可能です。
  1. JavaにおけるJsonPatchインターフェースの重要性とは?JSONパッチ操作の基本を解説

    JavaのJSON Processing APIに含まれるJsonPatchインターフェースは、対象となるJSON構造に適用可能な一連の操作(オペレーション)を格納するためのフォーマットです。 パッチとして保存できる主な操作には、add(追加)、remove(削除)、replace(置換)、copy(コピー)、move(移動)、test(検証)の6種類があります。これらの操作を組み合わせることで、元のJSONドキュメントを直接書き換えることなく、差分だけを効率的に管理し、必要なタイミングで一括して適用することが可能になります。 また、JsonPatchBuilderインターフェースを使用すると

  2. Javaのインターフェースとは?基本構文からクラスとの違いまで徹底解説

    Javaのインターフェースとはインターフェースは、Javaにおける参照型の一つで、クラスとよく似た性質を持っています。その本体は抽象メソッドの集まりであり、クラスがインターフェースを実装することで、その抽象メソッドを引き継ぐ仕組みになっています。抽象メソッドに加えて、インターフェースには定数、デフォルトメソッド、静的メソッド、ネストされた型を含めることも可能です。ただし、メソッドの本体(処理内容)が存在するのは、デフォルトメソッドと静的メソッドのみです。インターフェースの記述方法はクラスと似ていますが、両者の役割は異なります。クラスがオブジェクトの属性や振る舞いを記述するのに対し、インターフェ