Java接口用interface关键字定义,声明抽象行为契约,方法默认public abstract、字段默认public static final;Java 8起支持default和static方法;接口可多继承,类可多实现。

Java 接口使用 interface 关键字定义,语法结构清晰、严格,核心是声明抽象行为契约,不包含具体实现(Java 8 之后允许默认方法和静态方法)。
基本接口定义语法
最简形式如下:
- 用
interface关键字开头,后跟接口名(遵循类名命名规范,一般首字母大写) - 接口体用一对花括号
{}包裹 - 接口中默认所有方法都是
public abstract,可省略这两个修饰符 - 接口中所有字段(成员变量)默认是
public static final,即常量,必须初始化
示例:
public interface Flyable {
int MAX_HEIGHT = 10000; // 等价于 public static final int MAX_HEIGHT = 10000;
<pre class="brush:php;toolbar:false;">void takeOff(); // 等价于 public abstract void takeOff();
void fly();
void land();}
立即学习“Java免费学习笔记(深入)”;
Java 8+ 支持的扩展语法
从 Java 8 开始,接口可包含具体方法实现:
-
默认方法(default method):用
default修饰,可被实现类继承并可选重写,用于向后兼容新增方法 -
静态方法(static method):用
static修饰,只能通过接口名调用,不能被实现类继承
示例:
public interface Flyable {
void takeOff();
<pre class="brush:php;toolbar:false;">default void hover() {
System.out.println("Hovering in place...");
}
static void checkWeather() {
System.out.println("Checking weather conditions.");
}}
立即学习“Java免费学习笔记(深入)”;
接口的修饰符与访问控制
接口本身可使用的修饰符有限:
- 顶级接口(非嵌套)只能用
public或不写(默认包级私有) - 不能用
private、protected、final、abstract(接口本质就是抽象的,加abstract合法但冗余) - 内部接口(定义在类或接口内)可用
public、private、protected,默认为public static
接口的继承与多实现
接口支持多继承(用 extends),类实现接口用 implements:
- 一个接口可
extends多个接口,用逗号分隔 - 一个类可
implements多个接口,也用逗号分隔 - 若类实现的多个接口中有同名默认方法,该类必须重写此方法,否则编译报错
示例:
interface Movable { void move(); }
interface Soundable { void makeSound(); }
<p>interface Drone extends Flyable, Movable, Soundable {
default void selfTest() { /<em> ... </em>/ }
}</p><p>class Quadcopter implements Flyable, Movable {
public void takeOff() { /<em> ... </em>/ }
public void move() { /<em> ... </em>/ }
}










