1. 程式人生 > >Java開發雜談(六)final關鍵字

Java開發雜談(六)final關鍵字

final可以修飾非抽象類、非抽象方法、變數或常量。

final類不能被繼承,final類的方法預設都是final的。

final方法不能被子方法覆蓋,但可以被繼承。這有兩個作用,一是防止被修改實現,二是編譯器處理呼叫final方法時轉入內聯機制(inline),執行效率高。inline的原理是在編譯的時候直接呼叫方法程式碼替換,而不是在執行時呼叫方法,因此效率較高。但如果程式碼塊過大,每次都替換,會使得編譯效率很低。

final成員變量表示常量,只能被賦值一次 。初始化時可不賦值,被稱為final空白,編譯器會確保final變數被使用前初始化。