接口中的代码实现

Dan*_*Mac 0 java implementation interface

我一直想知道为什么允许在接口中执行代码实现,当接口被假定为不包含代码实现时:

public interface someInterface{
String someString = "example";   
}
Run Code Online (Sandbox Code Playgroud)

我可以使类实现此接口,而不会出现错误:

public class someClass implements someInterface
Run Code Online (Sandbox Code Playgroud)

怎么会?

rge*_*man 8

您可以在接口中声明常量,这就是您所做的.您还没有实现代码.

接口中声明的变量是隐式声明的public static final.

JLS,第9.3节,涵盖了这一点:

接口主体中的每个字段声明都是隐式的public,static和final.允许为这些字段冗余地指定任何或所有这些修饰符.