在實(shí)際開發(fā)中一些類是不希望被實(shí)例化,實(shí)例化對(duì)他沒有任何意義,然后,在缺少顯示構(gòu)造器的情況下,編譯器會(huì)自動(dòng)提供一個(gè)公有的,無慘的缺省構(gòu)造器,對(duì)用戶而言,這個(gè)構(gòu)造器與其他的構(gòu)造器沒有任何區(qū)別
企圖通過將類做成抽象類來強(qiáng)制該類不可被實(shí)例化,這是行不通的
抽象類可以被子類化,子類可以實(shí)例化
- 實(shí)際上,我們可以將無參的構(gòu)造函數(shù)私有化,這樣就能避免類的外部去訪問它。但這樣做仍然是不夠的,因?yàn)轭惖膬?nèi)部還是可以訪問它。因此,我們還需要在其構(gòu)造函數(shù)內(nèi)拋出一個(gè)異常,來防止其在內(nèi)部實(shí)例化該類。
public class UtilityClass{
private UtilityClass(){
throw new AssertionError();
}
}