为什么接口方法不能"静态"和"最终"?

Sar*_*ang 7 java methods static final interface

在Java Interface中,我们只能使用最终变量.我们还可以在Interface中创建静态变量.但是,与此同时,我们无法创建静态/最终方法,因为接口仅适用于静态方法.

在接口中不允许静态/最终方法的原因是什么?

Mat*_*ann 14

最终方法无法覆盖.如果您无法实际实现该方法,那就无法拥有接口的目的.

对于静态部分,请参阅此问题.


JB *_*zet 12

你理解错了.

  1. 所有变量都是隐式公共静态和接口中的最终变量.

  2. 在Java 8之前,您无法在接口中创建静态方法.所有方法都是实例方法.

  3. 由于接口的唯一目标是让类实现它们,并且由于接口中的方法不能有任何实现,因此将它们作为final是没有意义的:它们没有实现,也无法被覆盖.


duf*_*ymo 5

接口是为实例定义的,而不是静态的.

"最后"的意思是"不能被覆盖".这对任何接口都没有意义.