"接口中的字段是隐式静态和最终的".
在界面写作
int N = 1;
public int N = 1;
static int N = 1;
public static int N = 1;
// also
final int N = 1;
public final int N = 1;
static final int N = 1;
public static final int N = 1;
Run Code Online (Sandbox Code Playgroud)
都是一样的.
这是否意味着实现包含方法foo()的接口的类A可以调用该方法作为A.foo()
字段和方法都是成员,但方法和字段不是一回事.
接口中的方法不能是,static或者final是隐式公共和抽象的
int foo();
public int foo();
abstract int foo();
public abstract int foo();
Run Code Online (Sandbox Code Playgroud)
对于一个接口都是一样的.
就我而言,最终的方法是不可能被覆盖的
无法覆盖最终实例方法,并且无法隐藏最终的静态方法.
类似地,嵌套的接口,类和注释是公共的和静态的.嵌套接口和注释也是隐式抽象的.
interface A {
public static class C { }
public static /* final */ enum E {; }
public static abstract interface I { }
public static abstract @interface A { }
}
Run Code Online (Sandbox Code Playgroud)