最终静态方法考试

Tob*_*rds 10 java static-methods

我一直在学习我的软件开发课程,并从一个样本中发现了这个问题:

"为什么在Java方法前面同时使用静态和最终修饰符是没有意义的?"

我已经进行了一些研究,无论我去哪里都说这不是一种不好的做法,并且有充分的理由这样做 - 例如,这个stackoverflow问题: 声明一个最终的静态方法是一个坏主意吗?

那么,这个问题本身是荒谬的,还是对这个问题有合理的答案?

(此样本文件没有给出解决方案)

And*_*nov 8

static方法不能被覆盖,因为它们不与类的实例相关联,而是与类本身相关联.例如,这就是你通常调用static方法的方法:

  MyClass.myStaticMethod()
Run Code Online (Sandbox Code Playgroud)

这就是你调用实例方法的方法:

  new MyClass().myInstanceMethod()
Run Code Online (Sandbox Code Playgroud)

final 修饰符与方法一起使用,以在扩展类中禁止它们的覆盖.


Old*_*eon 5

因为一个static 方法不能被覆盖.因此标记它没有意义final.

但请注意,static final 变量(奇怪的是,因此它们不能更改,因此它们不是变量)非常有用,因为它们的值可以由编译器内联.