相关疑难解决方法(0)

最终静态方法的行为

我一直在玩静态方法的修饰符,并遇到了一个奇怪的行为.

我们知道,静态方法不能被覆盖,因为它们与类而不是实例相关联.

所以,如果我有下面的代码片段,它编译得很好

//Snippet 1 - Compiles fine
public class A {
    static void ts() {
    }
}

class B extends A {
    static void ts() {
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我在A类中将final修饰符包含到静态方法中,则编译失败 ,B中的ts()不能覆盖A中的ts(); 重写方法是静态最终的.

当静态方法根本无法被覆盖时,为什么会发生这种情况?

java methods static final

117
推荐指数
4
解决办法
4万
查看次数

最终静态方法考试

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

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

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

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

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

java static-methods

10
推荐指数
2
解决办法
302
查看次数

static,final,static final - 正确用法以及何时使用它们?

我想知道何时应该为变量和(或)方法使用static,final,static final参数.据我所知:

  • final:与c +​​+中的const参数类似.它基本上意味着值(或方法 - 返回值)不会改变.
  • static:这意味着值(或方法)不直接分配给某个对象 - 因此您可以在其他类中使用静态变量(或方法)而无需创建对象
  • final static:这个组合是否意味着你有变量(或方法),你可以在不创建对象(静态)的情况下访问它并且你无法改变它的值(就像在c ++ const中)(最终)

如果我是对的,那我就得不到一件事.在IntelliJ IDE中,当您将方法声明为public final static时,它指出应该删除final,因为已经指出了static.为什么,如何,何时???

java static final

2
推荐指数
1
解决办法
1124
查看次数

标签 统计

java ×3

final ×2

static ×2

methods ×1

static-methods ×1