Final
final關鍵字可以理解為終態。
final修飾類
final修飾的類不允許被繼承。
一個類不能既是final的,又是abstract的。因為abstract的主要目的是定義一種約定,讓子類去實現這種約定,而final表示該類不能被繼承,兩者矛盾。
final修飾方法
final修飾方法,表示該方法不能被子類中的方法覆寫Override。
final修飾變量
final成員變量表示常量,只能被賦值一次,賦值后值不再改變。
當final修飾一個原生數據類型時,表示該原生數據類型的值不能發生變化;
如果final修飾一個引用類型時,表示該引用類型不能再指向其他對象了,但該引用所指向的對象的內容是可以發生變化的。
本質上是一回事,因為引用的值是一個地址,final要求值,即地址的值不發生變化。
final修飾一個成員變量(屬性),必須要顯示初始化。
這里有兩種初始化方式,一種是在變量聲明的時候初始化;第二種方法是在聲明變量的時候不賦初值,但是要在這個變量所在的類的所有的構造函數中對這個變量賦初值。
當函數的參數類型聲明為final時,說明該參數是只讀型的。