在 Java 中,接口中的方法默认是没有方法体的,这样的方法被称为抽象方法(Abstract Method)。在 Java 8 之前,接口只能包含抽象方法。但从 Java 8 开始,接口还可以包含默认方法(Default Method)和静态方法(Static Method)。
抽象方法
抽象方法没有方法体,只声明了方法签名。接口中的所有方法默认都是抽象方法,不需要显式地使用 abstract
关键字来声明。
示例
public interface MyInterface {
void doSomething(); // 默认是抽象方法
}
默认方法
从 Java 8 开始,接口可以包含有方法体的方法,这些方法称为默认方法,使用 default
关键字声明。
示例
public interface MyInterface {
default void doSomething() {
System.out.println("Doing something...");
}
}
静态方法
同样从 Java 8 开始,接口也可以包含静态方法,这些方法使用 static
关键字声明。
示例
public interface MyInterface {
static void printMessage(String message) {
System.out.println(message);
}
}
总结
- 抽象方法:没有方法体,需要在实现类中提供具体实现。
- 默认方法:有方法体,默认提供了实现,可以被接口的实现类重写。
- 静态方法:有方法体,只能通过接口名称调用,不能被实现类重写。
在 Java 8 之前,接口中的所有方法都是抽象方法,但从 Java 8 开始,接口可以包含默认方法和静态方法,这增加了接口的功能性和灵活性。