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."); } }
私有方法可以被默认方法和静态方法调用。