final 關鍵字:用來修飾類,方法,成員變量,局部變量
表示最終的不可變的
1、final修飾一個類
表示當前的類不能有子類,也就是不能將一個類作為父類
格式:
public final class 類名稱 {
class body
}
一個類如果是final的,那么其中所有成員方法都不能被覆蓋重寫(因為沒有子類),但是該類可以有父類
2、final關鍵字修飾成員方法
這個方法就是最終方法,也就是該類的子類不能覆蓋重寫這個方法
對於類、方法來說abstract、final不能同時使用,因為他們是矛盾的,abstract的方法必須覆蓋重寫,但是final的方法不能覆蓋重寫
3、final修飾局部變量
一旦使用final修飾局部變量,就不能改變,也就是一旦賦值不能更改,而且只能賦值一次,哪怕第二次賦值是一樣的也不行
對於引用類型來說,使用關鍵字final修飾,不可變的含義就是地址值不能改變,但是該地址指向的對象的內容是可以改變的
4、final關鍵字修飾成員變量
對於成員變量來說,一旦使用final關鍵字,也是一樣不能改變
a、和局部變量的不同點在於,成員變量有默認值,因此必須手動賦值
b、final的成員變量可以定義的時候直接賦值,或者使用構造方法在構造方法體里面賦值,但是只能二者選其一
c、如果沒有直接賦值,那就必須保證所有重載的構造方法最終都會對final的成員變量進行了賦值