约final关键字Java基础(java basics about final keyword)

2019-08-03 03:19发布

可以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");
   }
}

通常有两个原因作出最后的方法

  1. 当一个方法是最后,它“可以”被内联。
  2. 当一个方法是最终,该方法是不可能重写。


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行为不正确。



文章来源: java basics about final keyword