變量定義為final,一旦被初始化便不可改變,這里不可改變的意思對基本類型來說是其值不可變,而對於對象變量來說其引用不可再變。
方法定義為final,是為了防止任何繼承類改變它。
類定義為final,則該類無法給任何類繼承。
-
final類不能被繼承,沒有子類,final類中的方法默認是final的。
-
final方法不能被子類的方法覆蓋,但可以被繼承。
-
final成員變量表示常量,只能被賦值一次,賦值后值不再改變。
-
final不能用於修飾構造方法。
注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認是final類型的。
1、final類
final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,默認都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會載被擴展,那么就設計為final類。
2、final方法
如果一個類不允許其子類覆蓋某個方法,則可以把這個方法聲明為final方法。使用final方法的原因有二:
①把方法鎖定,防止任何繼承類修改它的意義和實現。
②高效,編譯器在遇到調用final方法時候會轉入內嵌機制,大大提高執行效率。
