主题说得最多——静态方法不能在接口(interface)中声明的原因是什么?
public interface ITest {
public static String test();
}
上面的代码给了我以下错误(至少在 Eclipse 中):“接口(interface)方法 ITest.test() 的非法修饰符;只允许公共(public)和抽象”。
最佳答案
这里有几个问题。第一个是声明静态方法而不定义它的问题。这就是区别
public interface Foo {
public static int bar();
}
和
public interface Foo {
public static int bar() {
...
}
}
第一个是不可能的,原因是Espo提到:你不知道哪个实现类是正确的定义。
Java 可以允许后者;事实上,从 Java 8 开始,它确实如此!
关于java - 为什么我不能在接口(interface)中声明静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21817/