一、有時須要編寫僅僅包含 靜態變量和靜態方法的類:java
- java.lang.Math 或 java.util.Arrays 基本類型值或數組類型 的相關方法組織起來
- java.util.Collections 把實現特定接口的靜態方法組織起來
- 把 final 類型的類上的方法組織起來,而不是擴展 該類(final 沒法擴展)
- 上述工具類,不但願被實例化,實例化沒有任何意義
二、缺乏顯式構造器,編譯器會提供一個 公有的 無參的缺省構造器數組
三、用抽象類強制該類不可被實例化,行不通:工具
- 緣由是:子類化後,子類能夠被實例化!!!
- 更加誤導用戶,該類是爲了繼承而設計的
四、爲類建立私有構造器設計
![](http://static.javashuo.com/static/loading.gif)
五、私有構造器缺點:繼承
- 不可被子類化,由於全部子類都要顯式或隱式調用父類構造器(私有則子類沒法訪問)