接口中的修饰符

Oracle Java 风格指南指出:

修饰符不应在隐含时写出。

(见修饰符甲骨文的官方代码标准的背景和实际的 Oracle 文档的链接。)

此样式指南特别适用于界面。让我们考虑以下代码片段:

interface I {
    public static final int VARIABLE = 0;

    public abstract void method();

    public static void staticMethod() { ... }
    public default void defaultMethod() { ... }
}

变量

所有接口变量都是隐式常量,隐式 public(可供所有人访问),static(可通过接口名称访问)和 final(必须在声明期间初始化)修饰符:

public static final int VARIABLE = 0;

方法

  1. 所有不提供实现的方法都是隐含的 publicabstract
public abstract void method();

Version >= Java SE 8

  1. 所有使用 staticdefault 修饰符的方法都必须提供实现,并且隐含地使用 public
public static void staticMethod() { ... }

完成上述所有更改后,我们将获得以下信息:

interface I {
    int VARIABLE = 0;
    
    void method();

    static void staticMethod() { ... }
    default void defaultMethod() { ... }
}