【发布时间】:2015-06-05 15:28:51
【问题描述】:
我最近在玩 Java 8 的新功能并观察到一个有趣的行为:
没关系:
Class A { static void staticMethodInA() {println();} }
Class B extends A {}
B.staticMethodInA();
这会导致错误:静态方法只能在包含接口类时调用。
interface A { static void staticMethodInA() {println();} }
Class B implements A {}
B.staticMethodInA(); // from here IntelliJ complaints..
谁能告诉我为什么 Java 8 的设计者可能会选择对以上两种情况进行不同的处理?
【问题讨论】:
-
@skaffman 相关问题与 Java 8 无关。它问:“为什么 Java 8 之前的接口中没有静态方法?”这个问题问:“在 Java 8 中,接口中允许使用静态方法,为什么我们不能从实现接口的类中调用静态方法?”没什么大不了的,虽然相关帖子可能会回答这个问题,但这个问题在技术上并不是相关帖子的重复。
标签: java java-8 interface static