java关于final关键字的基础知识

最终关键字可以用于方法吗?

绝对! final关键字几乎可以应用于任何事物,在每种情况下意味着“你不能再改变它了”。

这是应用于……时的含义

变量 :您根本无法为变量赋值新值(当然,将其渲染为常量

方法 :您不能在子类中重新实现(即,覆盖)此方法

一个类 :你不能定义一个子类

在每种情况下,我们只是简单地指出:一旦声明了这个东西,这是你将看到的最后一个值(或实现)。

是的,可以将方法声明为final 。 这意味着一个方法不能被其子类覆盖。

来自Java语言规范,第三版 , 第8.4.3.3节 :

可以将方法声明为final,以防止子类覆盖或隐藏它。 尝试覆盖或隐藏最终方法是编译时错误。

有关更多信息, The Java Tutorials中的Writing Final Classes and Methods页面提供了更多信息。

是。

你可以让方法最终

 public class A { public static final void f() { System.out.println("test"); } } 

使方法最终的原因通常有两个

  1. 当方法是最终的时,它可以“内联”。
  2. 当方法是最终的时,该方法不可能被覆盖。

当然可以。 让它无法覆盖。

当然,请查看最终关键字上的最后一句话

 public abstract class AbstractBase { public final void performOperation() // cannot be overridden { prepareForOperation(); doPerformOperation(); } protected abstract void doPerformOperation(); // must override } 

是。

子类不能覆盖最终方法。 这通常用于防止子类改变类的关键行为。

作为其他答案的说明。 你可以使用final。 在实践中,我很少看到人们使用它,我不知道为什么。

我现在写的很多代码都是针对multithreading环境的,我倾向于使类final成为一个不可变的(如果它是一个值类),所以它是线程安全的。

将某些方法标记为final(而不是其他方法)的问题在于,您声明该方法有一些特殊内容,而其他方法没有什么特别之处。 在我的经历中,这很少是人们真正的意思。

如果一个类是为了inheritance,你需要保持它的清洁并保持小,以防止不必要的副作用。 所有这些取决于您是为自己和团队编写代码,还是为更广泛的受众撰写代码 – 即开源项目或商业项目的公共API。

Final关键字主要用于限制用户。最终可以是1)变量2)方法3)类
如果你使变量最终然后你不能改变它的值(它作为一个常量)..
如果你使方法最终然后你可以使用它(使用inheritance的概念)但不能覆盖它..
最后,如果你让类最终然后你不能扩展它….在java访问中有很多关于final关键字: http : //javabyroopam.blogspot.com

是的,final关键字可用于方法。 它将保持不变性。 它可以防止方法被破坏。 例如,假设类X的某个方法的实现假设方法M将以某种方式运行。 将X或M声明为final将阻止派生类重新定义M,从而导致X行为不正确。