1. final修飾類
被修飾的類不能被繼承,也沒有子類。假如隨意創建這些類的子類,子類可能會錯誤的修改父類的實現細節、出於安全原因,類的實現細節不允許有任何改動、在創建對象模型的時候,確信這個類不會再被擴展。注:如果對一個已經被final修飾的類進行繼承操作,則會在編譯的期間直接出現錯誤
2. final修飾方法
final修飾的方法表示此方法已經是“最后的、最終的”含義,亦即此方法不能被重寫,(但是可以載多個final修飾的方法)。
需要注意的一點是: 重寫的前提是子類可以從父類中繼承此方法,如果父類中final修飾的方法的訪問權限是private,將會導致子類不能直接繼承到此方法,這時候再在子類中定義相同的方法名和參數,不會產生重寫與final之間出現的矛盾,而是在子類中定義了新的方法。
3. final修飾變量
final修飾的變量表示此變量是“最后的、最終的”,一旦定義了final變量,並在首次為其顯示進行了初始化之后,final修飾的變量值不可被再修改。
final修飾的變量,無論是類屬性、對象屬性、形參還是局部變量,這些變量都是需要進行顯示初始化(即為其顯示指定初始值)。
另外,無論對於基本數據類型還是引用數據類型,final修飾的變量都是首次初始化后值都不能修改。對於基本數據類型,很好理解。對於引用
數據類型,引用變量指向的是實際的對象,但其存儲的是所指向對象的地址,因此,其值不能修改並不意味着其所指向的對象不能修改。