java如何写接口
定义接口
在Java中,使用interface关键字定义接口。接口可以包含抽象方法、默认方法、静态方法和常量(隐式为public static final)。
public interface MyInterface {
// 抽象方法(隐式为public abstract)
void abstractMethod();
// 默认方法(Java 8+)
default void defaultMethod() {
System.out.println("Default method implementation");
}
// 静态方法(Java 8+)
static void staticMethod() {
System.out.println("Static method in interface");
}
// 常量
String CONSTANT = "Interface Constant";
}
实现接口
类通过implements关键字实现接口,必须实现接口中所有的抽象方法(除非类是抽象的)。

public class MyClass implements MyInterface {
@Override
public void abstractMethod() {
System.out.println("Implemented abstract method");
}
}
接口的多继承
Java支持接口的多继承,一个类可以实现多个接口,用逗号分隔。

public interface InterfaceA {
void methodA();
}
public interface InterfaceB {
void methodB();
}
public class MyClass implements InterfaceA, InterfaceB {
@Override
public void methodA() {
System.out.println("Method A");
}
@Override
public void methodB() {
System.out.println("Method B");
}
}
接口的默认方法冲突
如果多个接口有相同的默认方法,实现类必须重写该方法以避免冲突。
public interface InterfaceX {
default void conflictMethod() {
System.out.println("InterfaceX default method");
}
}
public interface InterfaceY {
default void conflictMethod() {
System.out.println("InterfaceY default method");
}
}
public class MyClass implements InterfaceX, InterfaceY {
@Override
public void conflictMethod() {
// 显式调用某个接口的默认方法
InterfaceX.super.conflictMethod();
}
}
接口与抽象类的区别
- 接口不能包含实例字段或构造方法,抽象类可以。
- 接口支持多继承,抽象类仅支持单继承。
- 接口的成员默认是
public,抽象类可以包含protected或private成员。
实际应用示例
接口常用于定义回调、策略模式或服务契约。例如:
// 定义回调接口
public interface Callback {
void onComplete(String result);
}
// 使用回调
public class Worker {
public void doWork(Callback callback) {
String result = "Work done";
callback.onComplete(result);
}
}
// 实现回调
public class Main {
public static void main(String[] args) {
Worker worker = new Worker();
worker.doWork(result -> System.out.println("Result: " + result));
}
}






