Tob*_*rds 10 java static-methods
我一直在学习我的软件开发课程,并从一个样本中发现了这个问题:
"为什么在Java方法前面同时使用静态和最终修饰符是没有意义的?"
我已经进行了一些研究,无论我去哪里都说这不是一种不好的做法,并且有充分的理由这样做 - 例如,这个stackoverflow问题: 声明一个最终的静态方法是一个坏主意吗?
那么,这个问题本身是荒谬的,还是对这个问题有合理的答案?
(此样本文件没有给出解决方案)
static方法不能被覆盖,因为它们不与类的实例相关联,而是与类本身相关联.例如,这就是你通常调用static方法的方法:
MyClass.myStaticMethod()
Run Code Online (Sandbox Code Playgroud)
这就是你调用实例方法的方法:
new MyClass().myInstanceMethod()
Run Code Online (Sandbox Code Playgroud)
final 修饰符与方法一起使用,以在扩展类中禁止它们的覆盖.
因为一个static 方法不能被覆盖.因此标记它没有意义final.
但请注意,static final 变量(奇怪的是,因此它们不能更改,因此它们不是变量)非常有用,因为它们的值可以由编译器内联.
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |