ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java `final`关键字 > 原文: [https://www.programiz.com/java-programming/final-keyword](https://www.programiz.com/java-programming/final-keyword) #### 在本教程中,我们将通过示例学习 Java 最终变量,方法和类。 在 Java 中,`final`关键字用于表示常量。 它可以与变量,方法和类一起使用。 一旦声明了任何实体(变量,方法或类)`final`,就只能分配一次。 那是, * 最终变量不能用另一个值重新初始化 * 最终方法不能被覆盖 * 最终类不能派生 * * * ## 1\. Java 最终变量 在 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`的最终变量。 而且我们尝试更改最终变量的值。 运行程序时,将出现以下错误消息,提示编译错误。 ```java cannot assign a value to final variable AGE AGE = 45; ^ ``` **注意**:建议在 Java 中使用大写字母来声明最终变量。 * * * ## 2\. Java 最终方法 在学习最终方法和最终类之前,请确保您了解 [Java 继承](/java-programming/inheritance "Java Inheritance")。 在 Java 中,子类不能覆盖`final`方法。 例如, ```java 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`类中的最终方法。 运行程序时,将出现以下错误消息,提示编译错误。 ```java display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final ``` * * * ## 3\. Java 最终类 在 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. ```java cannot inherit from final FinalClass class Main extends FinalClass { ^ ```