Java是final类中隐式final的静态函数吗?

时间:2019-09-12 03:35:25

标签: java function class static final

我的问题基本上与this相同,但这是否也适用于静态函数?编译器是否将final类中的所有静态函数都视为final本身?将final关键字添加到final类的静态函数中是否有效果?

2 个答案:

答案 0 :(得分:2)

在final类中,所有方法也都是隐式final,因为将class设置为final意味着无法继承它,因此在子类中不能隐藏或覆盖其方法。

因此,实际上,您可以正确地认为final类中的静态方法是final方法,但这不是因为它是静态方法。这是因为课程是最后的。

答案 1 :(得分:1)

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

编辑:正如您所指出的,声明一个静态方法final将防止子类通过声明一个同名方法来隐藏它。如果一个类是最终的,则此属性无关紧要,但是因为不存在子类来隐藏静态方法。从这个意义上讲,是的,所有静态方法都是隐式最终的。