經過私有構造器強化不可實例化的能力(4)

一、有時須要編寫僅僅包含 靜態變量和靜態方法的類:java

  • java.lang.Math 或 java.util.Arrays 基本類型值或數組類型 的相關方法組織起來
  • java.util.Collections 把實現特定接口的靜態方法組織起來
  • 把 final 類型的類上的方法組織起來,而不是擴展 該類(final 沒法擴展)
  • 上述工具類,不但願被實例化,實例化沒有任何意義

二、缺乏顯式構造器,編譯器會提供一個 公有的 無參的缺省構造器數組

三、用抽象類強制該類不可被實例化,行不通:工具

  • 緣由是:子類化後,子類能夠被實例化!!!
  • 更加誤導用戶,該類是爲了繼承而設計的

四、爲類建立私有構造器設計

  • 外部不可訪問

五、私有構造器缺點:繼承

  • 不可被子類化,由於全部子類都要顯式或隱式調用父類構造器(私有則子類沒法訪問)
相關文章
相關標籤/搜索