在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 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()
的最终方法。在这里, Main类继承了FinalDemo类。
我们试图覆盖Main类中的final方法。运行程序时,将出现以下错误消息,提示编译错误。
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类继承final类。
运行程序时,将出现以下错误消息,提示编译错误。
cannot inherit from final FinalClass
class Main extends FinalClass {
^