java借口如何定义
Java 接口的定义
在Java中,接口(Interface)是一种引用类型,用于定义一组抽象方法(无具体实现)和常量(默认为public static final)。接口通过interface关键字声明,可以被类实现(implements)或其他接口继承(extends)。
基本语法
public interface InterfaceName {
// 常量(默认public static final)
String CONSTANT = "value";
// 抽象方法(默认public abstract)
void methodName();
// Java 8+ 默认方法(有实现)
default void defaultMethod() {
System.out.println("Default method");
}
// Java 8+ 静态方法(有实现)
static void staticMethod() {
System.out.println("Static method");
}
}
关键特性
- 抽象方法:接口中的方法默认是
public abstract,无需显式声明。 - 默认方法(Java 8+):使用
default关键字定义,提供默认实现,子类可选择重写。 - 静态方法(Java 8+):使用
static关键字定义,直接通过接口名调用。 - 常量:接口中的字段默认是
public static final。
示例代码
// 定义一个接口
public interface Animal {
String TYPE = "Living Being"; // 常量
void eat(); // 抽象方法
default void breathe() {
System.out.println("Breathing..."); // 默认方法
}
static void displayType() {
System.out.println("Type: " + TYPE); // 静态方法
}
}
// 实现接口
class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog eats meat");
}
}
// 使用接口
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 调用实现的抽象方法
dog.breathe(); // 调用默认方法
Animal.displayType(); // 调用静态方法
}
}
接口的继承
接口可以继承其他接口,支持多重继承:

interface A {
void methodA();
}
interface B {
void methodB();
}
interface C extends A, B {
void methodC();
}
class MyClass implements C {
@Override
public void methodA() {}
@Override
public void methodB() {}
@Override
public void methodC() {}
}
注意事项
- 接口不能实例化,必须通过实现类使用。
- Java 9+ 支持私有方法(
private),用于拆分默认方法或静态方法的逻辑。 - 实现接口的类必须重写所有抽象方法(除非是抽象类)。






