1. 程式人生 > >java中的final關鍵子與abstract

java中的final關鍵子與abstract

一.final與abstract

    1.final可以修飾屬性,方法,類

    abstract不能修飾屬性

    2.abstract抽象類只能被繼承,方法不能有方法。如果一個類中的方法要用abstract修飾,那麼該類必須宣告為abstract抽象類。

       final修飾屬性和方法不能被子類繼承,final修飾類不能被繼承

二、final

  1. final關鍵字可以用於成員變數、本地變數、方法以及類。
  2. final成員變數必須在宣告的時候初始化或者在構造器中初始化,否則就會報編譯錯誤。
  3. 你不能夠對final變數再次賦值。
  4. 本地變數必須在宣告時賦值。
  5. 在匿名類中所有變數都必須是final變數。
  6. final方法不能被重寫。
  7. final類不能被繼承。
  8. final關鍵字不同於finally關鍵字,後者用於異常處理。
  9. final關鍵字容易與finalize()方法搞混,後者是在Object類中定義的方法,是在垃圾回收之前被JVM呼叫的方法。
  10. 介面中宣告的所有變數本身是final的。
  11. final和abstract這兩個關鍵字是反相關的,final類就不可能是abstract的。
  12. final方法在編譯階段繫結,稱為靜態繫結(static binding)。
  13. 沒有在宣告時初始化final變數的稱為空白final變數(blank final variable),它們必須在構造器中初始化,或者呼叫this()初始化。不這麼做的話,編譯器會報錯“final變數(變數名)需要進行初始化”。
  14. 將類、方法、變數宣告為final能夠提高效能,這樣JVM就有機會進行估計,然後優化。
  15. 按照Java程式碼慣例,final變數就是常量,而且通常常量名要大寫: