public class Person implements Runnable, Swimmable {
@Override
public void run() {
System.out.println("Person is running.");
}
@Override
public void swim() {
System.out.println("Person is swimming.");
}
// 他のメソッドやフィールドを追加しても良い
}
この例では、Person
クラスが Runnable
インターフェイスと Swimmable
インターフェイスを実装しています。それぞれのインターフェイスのメソッドで、run
メソッドでは “Person is running.” と表示し、swim
メソッドでは “Person is swimming.” と表示しています。このようにして、Person
クラスは複数のインターフェイスを実装し、それぞれのメソッドを提供しています。
複数のインターフェイスの実装
Javaにおいては1つのクラスが複数のインターフェイスを同時に実装することができます。これにより、1つのクラスが複数の異なる型や振る舞いを持つことができ、柔軟性が向上します。以下に基本的な概念を示します。
- 複数のインターフェイスの実装:
public class MyClass implements Interface1, Interface2, Interface3 {
// インターフェイスで宣言されたメソッドを実装する
}
implements キーワードを使用して、複数のインターフェイスを列挙します。
各インターフェイスのメソッドをクラス内で実装する必要があります。
- インターフェイスのメソッドの実装:
public class MyClass implements Interface1, Interface2 {
@Override
public void method1() {
// Interface1のメソッドの実装
}
@Override
public void method2() {
// Interface2のメソッドの実装
}
}
各インターフェイスで宣言されたメソッドを実装します。
@Override アノテーションを使用して、メソッドがインターフェイスのメソッドをオーバーライドしていることを明示的に示します。
- インターフェイスのデフォルトメソッド:
public class MyClass implements Interface1, Interface2 {
@Override
public void method1() {
// Interface1のメソッドの実装
}
@Override
public void method2() {
// Interface2のメソッドの実装
}
// インターフェイスのデフォルトメソッドをオーバーライドすることも可能
@Override
public void defaultMethod() {
// カスタムな実装
}
}
インターフェイスにデフォルトメソッドが含まれている場合、実装クラスでオーバーライドすることができます。
このようにして、1つのクラスが複数のインターフェイスを実装することで、異なる振る舞いや契約を持つ柔軟なクラス設計が可能になります。これはJavaのインターフェイスの強力な機能の一つであり、クラス間の協力や再利用性を高めるのに役立ちます。