为什么在Java8中不允许继承接口中定义的静态方法?

时间:2015-03-04 11:03:05

标签: java inheritance interface java-8

我正在研究在Java8中定义接口中静态方法的能力。我很困惑地看到接口中的静态方法不是由实现类或接口继承的。在类中定义的静态方法的情况下不会发生这种情况。我们可以轻松地继承这些方法。 我也无法在Oracle的文档中找到任何合理的理由。 我找到了相同问题的堆栈溢出链接,但这也没有回答这个问题。 Why are class static methods inherited but not interface static methods?。 我无法理解答案。 由于我没有足够的声誉来回答评论,所以我在这里问。 有些机构可以在这个链接上解释答案的最后部分,即

"如果我再次猜测,我会说默认情况下该实施是Cat的vtable的一部分。静态不可能。主要功能必须绑定到某些东西。在编译时,编译器可以用Animal.identify替换Cat.identify,但如果Cat被重新编译但代码不匹配现实,而不是包含main的类。"

0 个答案:

没有答案