Skip to content

Latest commit

 

History

History
122 lines (88 loc) · 3.05 KB

29.md

File metadata and controls

122 lines (88 loc) · 3.05 KB

Java final关键字

原文: https://www.programiz.com/java-programming/final-keyword

在本教程中,我们将通过示例学习 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 最终方法

在学习最终方法和最终类之前,请确保您了解 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类中的最终方法。 运行程序时,将出现以下错误消息,提示编译错误。

 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类继承最终的类。

When we run the program, we will get a compilation error with the following message.

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^