最终 class 中的静态函数是否隐式最终?
Are static functions in a final class implicitly final?
我的问题与 this 基本相同,但这也适用于 static
函数吗?
我想了解:
- 编译器是否将
final
class 中的所有 static
函数都视为 final
?
- 在
final
class 中的 static
函数中添加 final
关键字是否有任何效果?
所有 静态函数都是最终的,因此最终 class 中的静态函数也是如此。
编辑:正如您所指出的,声明静态方法 final 将防止子classes 通过声明同名方法来隐藏它。如果 class 是最终的,那么这个 属性 并不重要,因为不存在 subclass 来隐藏静态方法。从这个意义上说,是的,所有静态方法都是隐式最终的。
在 final class 中,所有方法也是隐式 final 的,因为使 class final 意味着它不能被继承,因此不能隐藏或覆盖其子方法classes.
因此,实际上您是正确的,final class 中的静态方法是 final,但这并不是因为它是静态方法。这是因为 class 是最终的。
我的问题与 this 基本相同,但这也适用于 static
函数吗?
我想了解:
- 编译器是否将
final
class 中的所有static
函数都视为final
? - 在
final
class 中的static
函数中添加final
关键字是否有任何效果?
所有 静态函数都是最终的,因此最终 class 中的静态函数也是如此。
编辑:正如您所指出的,声明静态方法 final 将防止子classes 通过声明同名方法来隐藏它。如果 class 是最终的,那么这个 属性 并不重要,因为不存在 subclass 来隐藏静态方法。从这个意义上说,是的,所有静态方法都是隐式最终的。
在 final class 中,所有方法也是隐式 final 的,因为使 class final 意味着它不能被继承,因此不能隐藏或覆盖其子方法classes.
因此,实际上您是正确的,final class 中的静态方法是 final,但这并不是因为它是静态方法。这是因为 class 是最终的。