Java final 关键字

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

一旦任何实体(变量、方法或类)被声明为 final,它就只能被赋值一次。也就是说:

  • final 变量不能被重新初始化为另一个值
  • final 方法不能被重写
  • final 类不能被继承

1. Java final 变量

在 Java 中,我们不能更改 final 变量的值。例如:

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 的 final 变量。我们尝试更改 final 变量的值。

当我们运行程序时,我们会收到一个编译错误,消息如下:

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

注意:在 Java 中声明 final 变量时,建议使用大写字母。


2. Java final 方法

在学习 final 方法和 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() 的 final 方法。这里,Main 类继承了 FinalDemo 类。

我们尝试在 Main 类中重写 final 方法。当我们运行程序时,我们会收到一个编译错误,消息如下:

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

3. Java final 类

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

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

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

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

在上面的示例中,我们创建了一个名为 FinalClass 的 final 类。这里,我们尝试让 Main 类继承 final 类。

当我们运行程序时,我们会收到一个编译错误,消息如下:

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战