Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java final 關鍵字

在本教程中,我們將通過示例學習Java final變量,final方法和final類。

在Java中,final關鍵字用于表示常量。它可以與變量,方法和類一起使用。

任何實體(變量,方法或類)一旦被聲明final后,只能分配一次。也就是,

  • final變量不能用另一個值重新初始化

  • final方法不能被重寫

  • final類不能被繼承

1. Java 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變量。

2. 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

3. Java 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 {
                   ^
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清