final 關鍵字代表最終、不可改變的。
常見四種用法:
1. 用來修飾一個類;
當 final 關鍵字用來修飾一個類的時候,表明這個類不能有任何的子類,也就是說這個類不能被繼承。
final類中的所有成員方法都會被隱式地指定為final方法,也就是說一個類如果是final的,那么其中所有的成員方法都無法進行覆蓋重寫。
格式:
public final class 類名稱 {
// ...
}
2. 用來修飾一個方法;
當 final 關鍵字用來修飾一個方法的時候,這個方法就是最終方法,也就是不能被覆蓋重寫。
格式:
修飾符 final 返回值類型 方法名稱(參數列表) {
// 方法體
}
注:對於類、方法來說,abstract 關鍵字和 final 關鍵字不能同時使用,因為矛盾。
3. 用來修飾一個局部變量;
一旦使用 final 用來修飾局部變量,那么這個變量就不能進行更改「一次賦值,終生不變」。
(1)對於基本類型來說,不可變說的是變量當中的數據不可改變;
(2)對於引用類型來說,不可變說的是變量當中的地址值不可改變。
4. 用來修飾一個成員變量。
對於成員變量來說,如果使用 final 關鍵字修飾,那么這個變量也照樣是不可變。
(1)由於成員變量具有默認值,所以用了 final 之后必須手動賦值,不會再給默認值了;
(2)對於 final 的成員變量,要么使用直接賦值,要么通過構造方法賦值,二者選其一;
(3)必須保證類當中所有重載的構造方法都最終會對 final 的成員變量進行賦值。