Kev*_*van 5 java oop interface class local
您不能在像下面这样的块内声明接口
public void greetInEnglish() {
interface HelloThere {
public void greet();
}
class EnglishHelloThere implements HelloThere {
public void greet() {
System.out.println("Hello " + name);
}
}
HelloThere myGreeting = new EnglishHelloThere();
myGreeting.greet();
}
Run Code Online (Sandbox Code Playgroud)
在本 Oracle 教程中,我得到了“您不能在本地类中声明成员接口”。因为“接口本质上是静态的”。
我渴望用更合理的信息来理解这一点,为什么界面本质上是静态的?
为什么上面的代码没有意义?
提前感谢您的介绍!
如果字段未定义为最终值,则任何实现都可以更改字段的值。然后它们将成为实现的一部分。接口是一个纯粹的规范,没有任何实现。
如果它们是静态的,那么它们属于接口,而不是对象,也不属于对象的运行时类型。
接口为客户端提供了一种与对象交互的方式。如果变量不是公共的,客户端将无法访问它们。