Java final 关键字

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

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

任何实体(变量,方法或类)一旦被声明final后,只能分配一次。也就是,

  • final变量不能用另一个值重新初始化

  • final方法不能被重写

  • final类不能被继承

1. Java final变量

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

classMain{publicstaticvoidmain(String[]args){//创建一个final变量finalintAGE=32;//尝试更改final变量AGE=45;System.out.println("Age:"+AGE);}}

在上述程序中,我们创建了一个名为age的final变量。并且我们尝试更改final变量的值。

运行程序时,将出现以下错误消息,提示编译错误。

cannotassignavaluetofinalvariableAGEAGE=45;^

注意:建议使用大写形式在Java中声明final变量。

2. Java final方法

在了解final方法和final类之前,请确保您了解Java继承

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

classFinalDemo{//创建final方法publicfinalvoiddisplay(){System.out.println("这是Final方法。");}}classMainextendsFinalDemo{//尝试重写final方法publicfinalvoiddisplay(){System.out.println("Final方法被覆盖。");}publicstaticvoidmain(String[]args){Mainobj=newMain();obj.display();}}

在上面的示例中,我们创建了一个在FinalDemo类内部命名display()的final方法。在这里,Main类继承了FinalDemo类。

我们试图覆盖Main该类中的final方法。运行程序时,将出现以下错误消息,提示编译错误。

display()inMaincannotoverridedisplay()inFinalDemopublicfinalvoiddisplay(){^overriddenmethodisfinal

3. Java final类

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

finalclassFinalClass{//创建final方法publicvoiddisplay(){System.out.println("这是final方法。");}}classMainextendsFinalClass{//尝试重写final方法publicvoiddisplay(){System.out.println("重写final方法");}publicstaticvoidmain(String[]args){Mainobj=newMain();obj.display();}}

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

运行程序时,将出现以下错误消息,提示编译错误。

cannotinheritfromfinalFinalClassclassMainextendsFinalClass{^
编辑于2024-05-20 13:19