声明和实现接口

使用 interface 关键字声明接口:

public interface Animal {
    String getSound(); // Interface methods are public by default
}

覆盖注释

@Override
public String getSound() {
    // Code goes here...
}

这会强制编译器检查我们是否重写并阻止程序定义新方法或弄乱方法签名。

接口使用 implements 关键字实现。

public class Cat implements Animal {

    @Override 
    public String getSound() {
        return "meow";
    }
}

public class Dog implements Animal {

    @Override
    public String getSound() {
        return "woof";
    }
}

在示例中,类 CatDog 必须定义 getSound() 方法,因为接口的方法本质上是抽象的(默认方法除外)。

使用接口

Animal cat = new Cat();
Animal dog = new Dog();

System.out.println(cat.getSound()); // prints "meow"
System.out.println(dog.getSound()); // prints "woof"