Javaでインタフェースを定義する方法は?
Javaでは、interfaceキーワードを使用してインタフェースを定義することができます。インタフェースには抽象メソッド、デフォルトメソッド、静的メソッドを含めることができますが、インスタンスフィールドやコンストラクタは含めることができません。
インターフェイスの構文を定義します。
public interface 接口名 {
// 抽象方法声明
void 方法名();
// 默认方法声明
default void 默认方法名() {
// 方法体
}
// 静态方法声明
static void 静态方法名() {
// 方法体
}
}
インターフェース名は自分で定義する必要があります。必要に応じて名前を付けることができます。インターフェース内の抽象メソッドには本体がありません。メソッドの名前、パラメータ、戻り値の型のみが宣言されています。デフォルトメソッドと静的メソッドには本体を持つことができ、インターフェース内でデフォルトのメソッド実装を直接提供することができます。
重要なことは、インターフェースはインスタンス化できず、他のクラスで実装または継承する必要があるということです。インターフェースを実装するクラスは、implementsキーワードを使用する必要があります。一方、インターフェースを継承するインターフェースは、extendsキーワードを使用する必要があります。
以下は、インターフェイスの定義と実装の例です。
public interface Animal {
void sound();
}
public class Dog implements Animal {
@Override
public void sound() {
System.out.println("汪汪汪!");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.sound();
}
}
上記の例では、Animalはインターフェースであり、Dogクラスがそのインターフェースを実装しています。DogクラスはAnimalインターフェースのsound()メソッドを実装しなければならず、具体的なメソッドを提供する必要があります。Mainクラスのmainメソッドでは、Dogオブジェクトが作成され、sound()メソッドが呼び出されます。出力結果はワンワンワン!です。