Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類引用

Java 有用資源

Java - final 關鍵字



final 關鍵字用於定義常量,並使屬性、方法和類成為 final,即不可更改。定義為 final 的方法和類不能被繼承和重寫。final 關鍵字是非訪問修飾符。

final 關鍵字可以與以下主題一起使用

  • 變數
  • 方法

最終變數

最終變數只能顯式初始化一次。宣告為 final 的引用變數永遠不能重新分配以引用不同的物件。

但是,物件中的資料可以更改。因此,可以更改物件的狀態,但不能更改引用。

對於變數final 修飾符通常與 static 一起使用以使常量成為類變數。

最終變數示例

public class Tester{
   final int value = 10;	 

   public void changeValue() {
      value = 14;   
   }
   public static void main(String[] args) {
      Tester tester = new Tester();
      tester.changeValue();
   }	 
}

輸出

Tester.java:6: error: cannot assign a value to final variable value
                value = 14;
                ^
1 error

最終方法

最終方法不能被任何子類重寫。如前所述,final 修飾符阻止方法在子類中被修改。

使方法成為最終的主要目的是防止任何外部人員更改方法的內容。

最終方法示例

您使用類宣告中的 final 修飾符宣告方法,如下例所示 -

class FinalTester {
   int value = 10;	 

   public final void changeValue() {
      value = 12;   
   }   
}

public class Tester extends FinalTester {
   public void changeValue() {
      value = 14;   
   }
   public static void main(String[] args) {
      Tester tester = new Tester();
      tester.changeValue();
   }
}

輸出

Tester.java:11: error: changeValue() in Tester cannot override changeValue() in FinalTester
        public void changeValue() {
                    ^
  overridden method is final
1 error

最終類

宣告final 的主要目的是防止該類被子類化。如果一個類被標記為 final,那麼任何類都不能繼承 final 類的任何特性。

最終類示例

final class FinalTester {
   int value = 10;	 

   public void changeValue() {
      value = 12;   
   }   
}

public class Tester extends FinalTester {
   public void changeValue() {
      value = 14;   
   }
   public static void main(String[] args) {
      Tester tester = new Tester();
      tester.changeValue();
   }
}

輸出

Tester.java:10: error: cannot inherit from final FinalTester
public class Tester extends FinalTester {
                            ^
1 error

何時在 Java 中使用 final 關鍵字?

final 關鍵字可以與變數、方法和類一起使用,以使它們成為常量,以便不能更改其值或屬性。final 關鍵字可用於以下上下文

  • 定義最終變數,以便其值不應更改。
  • 定義最終方法,以便不應重寫。
  • 定義最終類,以便不應繼承。
java_basic_syntax.htm
廣告
© . All rights reserved.