java 接口如何用
定义接口
接口使用 interface 关键字定义,仅包含抽象方法(Java 8 后允许默认方法和静态方法)。接口默认方法是 public abstract,变量默认是 public static final。
public interface Animal {
void eat(); // 抽象方法
String TYPE = "生物"; // 常量
}
实现接口
类通过 implements 关键字实现接口,必须重写所有抽象方法(除非是抽象类)。
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
多接口实现
一个类可同时实现多个接口,解决多继承问题。
public class Bird implements Flyable, EggLayer {
@Override
public void fly() { /* 实现Flyable */ }
@Override
public void layEgg() { /* 实现EggLayer */ }
}
默认方法
Java 8 允许接口包含 default 方法,提供默认实现,避免破坏现有代码。
public interface Vehicle {
default void start() {
System.out.println("车辆启动");
}
}
静态方法
接口中的静态方法通过接口名直接调用,不能被实现类继承。
public interface MathUtil {
static int add(int a, int b) {
return a + b;
}
}
// 调用方式:MathUtil.add(1, 2);
接口继承
接口可通过 extends 继承其他接口,支持多重继承。
public interface A { void methodA(); }
public interface B extends A { void methodB(); }
函数式接口
仅含一个抽象方法的接口可用 @FunctionalInterface 注解标记,支持 Lambda 表达式。

@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}
// Lambda 使用示例:Calculator add = (a, b) -> a + b;
实际应用场景
- 解耦:定义标准(如
Comparable接口)供不同类实现。 - 回调机制:通过接口传递方法逻辑(如事件监听器)。
- 策略模式:通过接口切换不同算法实现。
// 策略模式示例
public interface PaymentStrategy {
void pay(int amount);
}
public class CreditCardPayment implements PaymentStrategy {
@Override
public void pay(int amount) { /* 信用卡支付逻辑 */ }
}






