Java 觀念 - final 關鍵字
📓 此篇不是很完整,隨時會有很大的變動
final 在 Java 是一個關鍵字,出現在不同的 Code 上有不同的用途。
出現在 class 上
代表此 class 不能被他類繼承。
刻意繼承會出現 Compile error。
出現在方法上
代表此方法不可以被重寫(Override)
刻意重寫會出現 Compile error。
出現在變數上
代表此變數不可以被重新賦值。刻意重新賦值會出現 Compile error。
但是如果該變數被指到一個物件上,物件的實際內容(狀態)仍然可以被改變,因為 fianl 在變數上只是定義是否可以重新賦值。
其他
- fianl 不可以跟 abstract 關鍵字混用,因為他們的觀念互相衝突
- 使用 Reflection API 仍然有可能對已經設定成 fianl 的變數造成改變(參考)