java中interface定义完全抽象类型,规定实现类必须提供方法实现;支持常量、抽象方法、默认方法、静态方法及多接口继承,类通过implements实现并重写所有抽象方法。

Java 中用 interface 关键字定义接口,它是一种**完全抽象的类型**,用于规定类必须实现哪些方法,但不提供具体实现。
接口的基本定义语法
使用 interface 关键字,后跟接口名,大括号内声明抽象方法(默认 public abstract)和常量(默认 public static final):
public interface Flyable {
// 常量(自动加上 public static final)
int MAX_HEIGHT = 10000;
// 抽象方法(自动加上 public abstract)
void fly();
void land();
}
类通过 implements 实现接口
一个类要遵守接口契约,需用 implements 关键字,并**重写接口中所有抽象方法**:
public class Bird implements Flyable {
@Override
public void fly() {
System.out.println("Bird is flying with wings.");
}
@Override
public void land() {
System.out.println("Bird landed safely.");
}
}
- 一个类可以 implements 多个接口(用逗号分隔),这是 Java 实现“多重继承效果”的方式
- 接口中的方法在实现类中必须是 public(不能降级为 protected 或 private)
接口支持默认方法和静态方法(Java 8+)
从 Java 8 开始,接口可包含有方法体的成员,增强灵活性:
-
default 方法:用
default修饰,子类可直接调用或选择重写 -
static 方法:用
static修饰,只能通过接口名调用,如Flyable.help()
public interface Flyable {
void fly();
default void takeOff() {
System.out.println("Taking off...");
}
static void help() {
System.out.println("Flying guide available.");
}
}
接口之间可以继承
用 extends 让一个接口继承另一个(或多个)接口,组合行为:
public interface AirVehicle extends Flyable, Loadable {
void refuel();
}
- 子接口会继承父接口的所有抽象方法
- 接口支持多继承(如
extends A, B, C),类则不行
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











