final 關鍵字
阿新 • • 發佈:2020-08-20
final是一個JAVA的一個關鍵字,可以用來修飾變數,修飾方法,修飾類
顧名思義,final ,最終的,最後的
一:final修飾的類
繼承,子類就是在父類的基礎上進行功能的擴充套件,如果你不希望別人對A類進行擴充套件,就可以在類上加 final關鍵字
例如:
public final class String
JAVA中String的類,你是無法繼承的,也無法重寫裡面的方法無法對其進行擴充套件
關於String類,還有其他很多重要的特性,諸如,不可變的特性等等,這些設計都是有原因的,所以以後還是要具體的讀一讀裡面的程式碼和註釋
JAVA所有的原始碼裡的註釋,都有很詳細的解釋,我計劃以後我去把幾個關鍵類的翻譯都翻譯了,面向翻譯學習,既學習原始碼,又練一練英語
二:final修飾的方法
一個意思,final的目的就是阻止變更,被final修飾的方法無法被重寫,也不能被覆蓋(覆蓋和重寫就是一碼事,但是現在大家叫法不統一,以前學習不深入,左一個過載右一個覆蓋再一個重寫,直接幹懵了,索性不管了,現在的ide特別是idea足夠智慧,又不是不能用),我不希望某個方法被覆蓋,那麼就用final去修飾和限制
三:final修飾的變數
被final修飾的區域性變數,初始化第一次賦值後,就不能重新賦值了(埋個雷,String就全部是final的)
四:final修飾的引用
引用其實就是變數,引用裡儲存的就是指向物件的記憶體地址,記憶體地址不可變,也就意味著被final修飾的引用指向的物件不可變
五:final修飾的例項變數
也是一樣的,被final修飾的變數,在初始賦值後,就不能更改和變更;
例項變數如果使用final修飾,必須給這個例項變數手動賦值