可以final关键字用于方法?
Answer 1:
绝对! 在final
关键字可以应用到任何东西,在每种情况下,意思是“你不会再更改的。”
下面是当应用到它的意思......
一个变量 :你根本无法分配新的变量值(使之成为常量 ,当然)
方法 :不能重新实现(即覆盖)这个方法在子类中
一类 :不能定义一个子类
在每一种情况下,我们只是简单地表示:一旦这个东西是声明,这是最后的值(或执行),你会看到过它。
Answer 2:
是的,这是可以声明的方法为final
。 这将意味着一个方法不能被其子类覆盖。
从Java语言规范,第三版 , 第8.4.3.3 :
一种方法可以声明为final来防止子类覆盖或隐藏它。 这是一个编译时错误,试图重写或隐藏的最终方法。
欲了解更多信息,与最终类和方法从页面的Java教程提供了更多信息。
Answer 3:
是。
你可以做一个最后的方法
public class A {
public static final void f() {
System.out.println("test");
}
}
通常有两个原因作出最后的方法
- 当一个方法是最后,它“可以”被内联。
- 当一个方法是最终,该方法是不可能重写。
Answer 4:
当然可以。 使其无法覆盖。
Answer 5:
当然,检查出一锤定音的final关键字
public abstract class AbstractBase
{
public final void performOperation() // cannot be overridden
{
prepareForOperation();
doPerformOperation();
}
protected abstract void doPerformOperation(); // must override
}
Answer 6:
是。
最后一种方法不能由子类覆盖。 这通常被用来防止子类的改变之类的关键行为。
Answer 7:
作为一个纸条给其他的答案。 您可以使用最后。 在实践中我很少看到使用它的人,我不知道为什么。
大量的代码我写的这些天是用于多线程环境,我倾向于做最后类的不可变的(如果它的值类),所以它是线程安全的。
带标记的一些方法为最终(而不是其他人)的问题是,就表示有什么特殊之处,方法并没有什么特别之处的人。 这是很少什么人在我的经验实际上意味着。
如果一个类是为传承,你需要保持清洁,并保持它小,以防止不必要的副作用。 这一切都取决于你是否为你的自我和你的团队编写代码,还是你正在编写一个更广泛的受众 - 即在一个开源项目或商业项目的公共API。
Answer 8:
是,最终关键字可以用于的方法。 它会保留不变性。 它可以防止被损坏的方法之间。 例如,假设类X的某个方法的实现假设方法M将在一定的行为方式。 声明X或M作为最终将阻止以这样的方式重新定义中号派生类以使X行为不正确。