Java final 关键字

在 Java 中, final 关键字用于表示常量。在本教程中,我们将通过示例了解 Java final 变量、方法和类。

在本教程中,我们将通过示例了解 Java final 变量、方法和类。

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

final 的特性包括:

  • final 变量只能赋值一次
  • final 方法不能被覆盖
  • final 类不能被继承

Java final 变量

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

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

    // 创建 final 变量
    final int AGE = 32;

    // 尝试修改 final 变量
    AGE = 45;
    System.out.println("Age: " + AGE);
  }
}

在上面的程序中,我们创建了一个名为的 AGEfinal 变量。 并且我们试图改变 final 变量的值。

当我们运行程序时,我们将收到带有以下消息的编译错误。

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

!! 注意:在 Java 中建议 final 变量名使用大写。

Java final 方法

在了解 final 方法和 final 类之前,建议首先了解 Java 继承

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

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

public class Main extends FinalDemo {
  // 尝试去覆盖 final 方法
  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() 的 final 方法。 Main 类继承了 FinalDemo 类。

Main 类中,我们试图覆盖 FinalDemo 类中的 final 方法。当我们运行程序时,我们将收到带有以下消息的编译错误。

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

Java final 类

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

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

// 尝试去继承 final 类
public class Main extends FinalClass {
  public void display() {
    System.out.println("The method is overridden.");
  }

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

在上面的例子中,我们创建了一个名为 FinalClass 的 final 类,并尝试使用 Main 类继承 FinalClass 类。

当我们运行程序时,我们将收到带有以下消息的编译错误。

cannot inherit from final FinalClass
public class Main extends FinalClass {
                   ^