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");
}
// 常量(默认是public static final)
String CONSTANT = "Interface Constant";
}
实现接口的类
类通过implements关键字实现接口,必须实现所有抽象方法(除非是抽象类)。
public class MyClass implements MyInterface {
@Override
public void abstractMethod() {
System.out.println("Implemented abstract method");
}
// 可选择重写默认方法
@Override
public void defaultMethod() {
System.out.println("Overridden default method");
}
}
接口的多重实现
Java支持一个类实现多个接口,用逗号分隔。

public class MultiImplClass implements InterfaceA, InterfaceB {
@Override
public void methodFromA() { /* 实现 */ }
@Override
public void methodFromB() { /* 实现 */ }
}
接口的继承
接口可以继承其他接口,通过extends关键字,支持多重继承。
public interface ChildInterface extends ParentInterface1, ParentInterface2 {
void childMethod();
}
函数式接口(Java 8+)
如果接口只有一个抽象方法,可以标记为@FunctionalInterface,用于Lambda表达式。

@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}
// 使用Lambda实现
Calculator add = (a, b) -> a + b;
System.out.println(add.calculate(2, 3)); // 输出5
默认方法和静态方法的使用
默认方法允许接口提供默认实现,避免破坏现有代码;静态方法可直接通过接口调用。
MyInterface.staticMethod(); // 调用静态方法
MyClass obj = new MyClass();
obj.defaultMethod(); // 调用默认方法
接口与抽象类的区别
- 接口支持多重继承,抽象类不支持。
- 接口不能包含实例字段或构造方法,抽象类可以。
- 接口的成员默认是
public,抽象类可以定义访问修饰符。
实际应用示例
定义一个可排序的接口,并在类中实现:
public interface Sortable {
void sort(int[] array);
}
public class QuickSort implements Sortable {
@Override
public void sort(int[] array) {
// 实现快速排序逻辑
}
}
通过遵循上述规则和示例,可以灵活设计和使用Java接口。






