java如何声明接口
声明接口的基本语法
在Java中,使用interface关键字声明接口。接口默认是抽象的,其方法默认是public abstract的(Java 8之前)。语法如下:
interface InterfaceName {
// 抽象方法声明
void methodName();
}
接口的成员
-
抽象方法(Java 8前):
接口中的方法默认是抽象方法,无需显式添加abstract关键字。interface Animal { void eat(); // 默认是 public abstract } -
默认方法(Java 8+):
使用default关键字定义默认方法,允许提供默认实现。
interface Vehicle { default void start() { System.out.println("Vehicle started"); } } -
静态方法(Java 8+):
接口可以包含静态方法,直接通过接口名调用。interface MathUtils { static int add(int a, int b) { return a + b; } } -
常量字段:
接口中的字段默认是public static final的,即常量。
interface Constants { double PI = 3.14159; // 自动为 public static final }
接口的继承
接口支持多继承,通过extends关键字继承其他接口。
interface A {
void methodA();
}
interface B extends A {
void methodB();
}
接口的实现
类通过implements关键字实现接口,必须实现所有抽象方法(除非是抽象类)。
class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog eats bones");
}
}
示例:完整接口声明与实现
// 接口声明
interface Greeting {
void greet(); // 抽象方法
default void defaultGreet() { // 默认方法
System.out.println("Hello, world!");
}
static void staticGreet() { // 静态方法
System.out.println("Static greeting");
}
}
// 实现接口
class EnglishGreeting implements Greeting {
@Override
public void greet() {
System.out.println("Hello!");
}
}
// 使用
public class Main {
public static void main(String[] args) {
EnglishGreeting obj = new EnglishGreeting();
obj.greet(); // 输出: Hello!
obj.defaultGreet(); // 输出: Hello, world!
Greeting.staticGreet(); // 输出: Static greeting
}
}






