接口是Java中定义行为规范的抽象类型,使用interface关键字声明,包含抽象方法、默认方法和静态方法,实现类通过implements关键字实现接口并提供具体逻辑,支持多接口实现与多态调用,提升代码解耦与扩展性。

在Java中,接口(Interface)和实现类是面向对象编程(OOP)的重要组成部分,用于实现抽象和多态。合理使用接口可以提升代码的可扩展性与维护性。
什么是接口?如何定义接口
接口是一种规范,它只声明方法而不提供具体实现(Java 8之后允许默认方法和静态方法)。接口通过 interface 关键字定义。
示例:
public interface Vehicle {
// 抽象方法(无需 abstract 关键字)
void start();
void stop();
// 默认方法(Java 8+)
default void honk() {
System.out.println("Beep beep!");
}
}
接口中的变量默认是 public static final,方法默认是 public abstract(除默认方法和静态方法外)。
如何编写实现类
实现类使用 implements 关键字来实现一个或多个接口,并必须提供接口中所有抽象方法的具体实现。
立即学习“Java免费学习笔记(深入)”;
示例:
public class Car implements Vehicle {
@Override
public void start() {
System.out.println("Car engine started.");
}
@Override
public void stop() {
System.out.println("Car engine stopped.");
}
}
若类未实现接口中的全部抽象方法,则该类必须声明为 abstract。
接口的多实现与多态应用
Java不支持多继承,但允许一个类实现多个接口,这是实现多重行为的关键方式。
示例:
public interface Flyable {
void fly();
}
public class Airplane implements Vehicle, Flyable {
public void start() {
System.out.println("Airplane engine warming up.");
}
public void stop() {
System.out.println("Airplane landed and stopped.");
}
public void fly() {
System.out.println("Airplane is flying at 10,000 meters.");
}
}
利用接口,可以通过父类型引用调用子类对象,体现多态:
Vehicle v = new Car(); v.start(); // 输出:Car engine started. v = new Airplane(); v.start(); // 调用Airplane的start方法 v.honk(); // 调用默认方法
接口设计实用技巧
掌握以下技巧可提升接口使用的灵活性与代码质量:
- 接口名通常使用形容词或能力命名,如 Runnable、Serializable,体现“能做什么”。
- 优先针对接口编程,而非具体实现,降低耦合。
- 小接口优于大接口(ISP原则),避免强迫实现类实现无关方法。
- Java 8+ 中可使用 default 方法添加新功能而不破坏已有实现。
- 静态方法可用于工具性质的操作,如 Comparator.comparing()。
基本上就这些。接口是构建灵活系统的基础,结合实现类与多态机制,能有效组织复杂业务逻辑。掌握接口定义与实现技巧,是Java开发者必备能力。










