在本教程中,我們將通過示例學習Java final變量,final方法和final類。
在Java中,final關鍵字用于表示常量。它可以與變量,方法和類一起使用。
任何實體(變量,方法或類)一旦被聲明final后,只能分配一次。也就是,
final變量不能用另一個值重新初始化
final方法不能被重寫
final類不能被繼承
在Java中,我們無法更改final變量的值。例如,
class Main { public static void main(String[] args) { //創(chuàng)建一個final變量 final int AGE = 32; //嘗試更改final變量 AGE = 45; System.out.println("Age: " + AGE); } }
在上述程序中,我們創(chuàng)建了一個名為age的final變量。并且我們嘗試更改final變量的值。
運行程序時,將出現(xiàn)以下錯誤消息,提示編譯錯誤。
cannot assign a value to final variable AGE AGE = 45; ^
注意:建議使用大寫形式在Java中聲明final變量。
在了解final方法和final類之前,請確保您了解Java繼承。
在Java中,該final方法不能被子類覆蓋。例如,
class FinalDemo { //創(chuàng)建final方法 public final void display() { System.out.println("這是Final方法。"); } } class Main extends FinalDemo { //嘗試重寫final方法 public final void display() { System.out.println("Final方法被覆蓋。"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }
在上面的示例中,我們創(chuàng)建了一個在FinalDemo類內(nèi)部命名display()的final方法。在這里,Main類繼承了FinalDemo類。
我們試圖覆蓋Main該類中的final方法。運行程序時,將出現(xiàn)以下錯誤消息,提示編譯錯誤。
display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final
在Java中,final類不能被另一個類繼承。例如,
final class FinalClass { //創(chuàng)建final方法 public void display() { System.out.println("這是final方法。"); } } class Main extends FinalClass { //嘗試重寫final方法 public void display() { System.out.println("重寫final方法"); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } }
在上面的示例中,我們創(chuàng)建了一個名為FinalClass的final類。在這里,我們試圖通過Main類繼承final類。
運行程序時,將出現(xiàn)以下錯誤消息,提示編譯錯誤。
cannot inherit from final FinalClass class Main extends FinalClass { ^