Mig*_*ork 43 java oop methods final
添加private和final使用相同的方法是多余的吗?
class SomeClass {
//--snip--
private final void doStuff()
{
// private work here
}
}
Run Code Online (Sandbox Code Playgroud)
如果是的话private,任何人都无法覆盖它,对吗?
final如果没有效果,为什么可以添加关键字?(或者我错过了什么?)
ysh*_*vit 53
基本上,它是允许的,因为他们觉得不值得提出一个禁止private修饰符的特殊情况.就像你可以在接口上声明方法一样public,或者在接口中声明嵌套类static,即使这些关键字隐含在接口中也是如此.您还可以final在final类等上声明方法.
当你添加冗余修饰符时,Java采取了不抱怨的立场.他们一贯地做到了.
需要私有方法为final的一个边缘情况是使用SafeVarargs注释时.以下代码无法编译,因为私有方法不是最终的.
@SafeVarargs
private void method(List<String>... stringLists) {
//TODO a safe varargs operation
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8741 次 |
| 最近记录: |