最终 class 中的静态函数是否隐式最终?

Are static functions in a final class implicitly final?

我的问题与 this 基本相同,但这也适用于 static 函数吗?

我想了解:

  1. 编译器是否将 final class 中的所有 static 函数都视为 final
  2. final class 中的 static 函数中添加 final 关键字是否有任何效果?

所有 静态函数都是最终的,因此最终 class 中的静态函数也是如此。

编辑:正如您所指出的,声明静态方法 final 将防止子classes 通过声明同名方法来隐藏它。如果 class 是最终的,那么这个 属性 并不重要,因为不存在 subclass 来隐藏静态方法。从这个意义上说,是的,所有静态方法都是隐式最终的。

在 final class 中,所有方法也是隐式 final 的,因为使 class final 意味着它不能被继承,因此不能隐藏或覆盖其子方法classes.

因此,实际上您是正确的,final class 中的静态方法是 final,但这并不是因为它是静态方法。这是因为 class 是最终的。