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として定義することも可能です。
-
JavaにおけるJsonPatchインターフェースの重要性とは?JSONパッチ操作の基本を解説
JavaのJSON Processing APIに含まれるJsonPatchインターフェースは、対象となるJSON構造に適用可能な一連の操作(オペレーション)を格納するためのフォーマットです。 パッチとして保存できる主な操作には、add(追加)、remove(削除)、replace(置換)、copy(コピー)、move(移動)、test(検証)の6種類があります。これらの操作を組み合わせることで、元のJSONドキュメントを直接書き換えることなく、差分だけを効率的に管理し、必要なタイミングで一括して適用することが可能になります。 また、JsonPatchBuilderインターフェースを使用すると
-
Javaのインターフェースとは?基本構文からクラスとの違いまで徹底解説
Javaのインターフェースとはインターフェースは、Javaにおける参照型の一つで、クラスとよく似た性質を持っています。その本体は抽象メソッドの集まりであり、クラスがインターフェースを実装することで、その抽象メソッドを引き継ぐ仕組みになっています。抽象メソッドに加えて、インターフェースには定数、デフォルトメソッド、静的メソッド、ネストされた型を含めることも可能です。ただし、メソッドの本体(処理内容)が存在するのは、デフォルトメソッドと静的メソッドのみです。インターフェースの記述方法はクラスと似ていますが、両者の役割は異なります。クラスがオブジェクトの属性や振る舞いを記述するのに対し、インターフェ