如果物件資料成員被宣告為final,但沒有明確指定值,那表示延遲物件成員值的指定,在建構式執行流程中,一定要有對該資料成員指定值的動作,否則編譯錯誤。
class前也可以加上final關鍵字,假設class前使用了final關鍵字定義,那麼表示這個類別是最後一個,不會再有子類別,也就是說不能被繼承。例如String在定義時就限定為final了。
定義方法時,也可以限定該方法為final,這表示最後一次定義方法了,也就是子類別不可以重新定義final方法。例如java.lang.Object就有幾個fina方法,例如notify、notifyAll,如果嘗試在繼承父類別後,重新定義final方法,就會發生編譯錯誤。
在Java SE API會宣告為final的類別或方法,通常與JVM物件或作業系統資源管理有密切相關,因此不希望API使用者繼承或重新定義。
在Java中,子類別只能繼承一個父類別,如果定義類別時沒有使用extends關鍵字指定繼承任何類別,那一定是繼承java.lang.Object。