Java final 关键字
Java final 关键字
在本教程中,我们将通过示例了解 Java final 变量、方法和类。
在 Java 中,final
关键字用于表示常量。它可以与变量、方法和类一起使用。
一旦声明了任何实体(变量、方法或类)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 的最终变量 .并且我们已经尝试改变 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();
}
}
在上面的例子中,我们创建了一个名为 display()
的最终方法 FinalDemo
内 班级。这里,Main 类继承 FinalDemo 类。
我们试图覆盖 Main 中的 final 方法 班级。当我们运行程序时,我们会得到一个编译错误,并显示以下消息。
display() in Main cannot override display() in FinalDemo
public final void display() {
^
overridden method is final
3. Java最终类
在 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 的最终类 .在这里,我们尝试通过 Main 继承最终类 类。
当我们运行程序时,我们会得到一个编译错误,并显示以下消息。
cannot inherit from final FinalClass
class Main extends FinalClass {
^
java