📜  Java final关键字

📅  最后修改于: 2020-09-26 14:39:59             🧑  作者: Mango

在本教程中,我们将通过示例学习Java最终变量,方法和类。

在Java中, final关键字用于表示常量。它可以与变量,方法和类一起使用。

一旦将任何实体(变量,方法或类)声明为final ,则只能分配一次。那是,

  • 最终变量不能用另一个值重新初始化
  • 最终方法不能被覆盖
  • 期末班不能延长

1. Java最终变量

在Java中,我们无法更改最终变量的值。例如,

class Main {
  public static void main(String[] args) {

    // create a final variable
    final int AGE = 32;

    // try to change the final variable
    AGE = 45;
    System.out.println("Age: " + AGE);
  }
}

在上面的程序中,我们创建了一个名为age的最终变量。并且我们尝试更改最终变量的值。

运行程序时,将出现以下错误消息,提示编译错误。

cannot assign a value to final variable AGE
    AGE = 45;
    ^

注意 :建议使用大写形式在Java中声明最终变量。


2. Java final方法

在了解最终方法和最终类之前,请确保您了解Java继承。

在Java中,子类不能覆盖final方法。例如,

class FinalDemo {
    // create a final method
    public final void display() {
      System.out.println("This is a final method.");
    }
}

class Main extends FinalDemo {
  // try to override final method
  public final void display() {
    System.out.println("The final method is overridden.");
  }

  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

在上面的示例中,我们在FinalDemo类中创建了一个名为display()的最终方法。在这里, Main类继承了FinalDemo类。

我们试图覆盖Main类中的final方法。运行程序时,将出现以下错误消息,提示编译错误。

display() in Main cannot override display() in FinalDemo
  public final void display() {
                    ^
  overridden method is final

3. Java最终课程

在Java中,最终类不能被另一个类继承。例如,

final class FinalClass {
    // create a final method
    public void display() {
      System.out.println("This is a final method.");
    }
}

class Main extends FinalClass {
  // try to override final method
  public  void display() {
    System.out.println("The final method is overridden.");
  }

  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

在上面的示例中,我们创建了一个名为FinalClass的最终类。在这里,我们试图通过Main类继承final类。

运行程序时,将出现以下错误消息,提示编译错误。

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^