Java接口(interface)是一种特殊的抽象类型,它定义了一组方法和常量,但不提供实现。接口只包含方法的声明,不包含方法的实现。实现接口的类需要提供接口中所有方法的具体实现。
以下是Java接口的语法规则:
接口声明:使用interface
关键字声明一个接口,接口名称通常以大写字母I
开头,表示这是一个接口。例如:
public interface MyInterface {
// 方法声明和常量定义
}
方法声明:接口中的方法都是抽象方法,不能有方法体。方法声明后面不需要分号。方法的访问修饰符默认为public
,不能使用其他访问修饰符。例如:
void myMethod();
常量定义:接口中可以定义常量,常量的值在定义时必须初始化,且不能被修改。常量的访问修饰符默认为public static final
,不能使用其他访问修饰符。例如:
int MY_CONSTANT = 42;
接口继承:接口可以继承其他接口,使用extends
关键字。一个接口可以继承多个接口,用逗号分隔。例如:
public interface MyInterface extends ParentInterface1, ParentInterface2 {
// 方法声明和常量定义
}
实现接口:类可以实现一个或多个接口,使用implements
关键字。一个类可以实现多个接口,用逗号分隔。实现接口的类必须提供接口中所有方法的具体实现。例如:
public class MyClass implements MyInterface {
// 实现接口中的方法
public void myMethod() {
// 方法实现
}
}
接口中的默认方法:从Java 8开始,接口可以包含默认方法(default method),这是一种带有默认实现的方法。默认方法使用default
关键字声明。例如:
public interface MyInterface {
default void myDefaultMethod() {
System.out.println("This is a default method.");
}
}
实现接口的类可以选择覆盖默认方法,也可以选择继承默认方法的实现。
接口中的静态方法:从Java 8开始,接口可以包含静态方法。静态方法使用static
关键字声明。例如:
public interface MyInterface {
static void myStaticMethod() {
System.out.println("This is a static method.");
}
}
调用静态方法时,需要使用接口名称,而不是实现接口的类名。例如:MyInterface.myStaticMethod();
接口中的私有方法:从Java 9开始,接口可以包含私有方法。私有方法使用private
关键字声明,只能在接口内部使用。例如:
public interface MyInterface {
private void myPrivateMethod() {
System.out.println("This is a private method.");
}
}
私有方法可以被默认方法和静态方法调用。