Thinking In Java Part02_03(抽象)

1、抽象類和抽象方法
	如果我們只提供接口,但沒有具體的實現內容,創建這個對象是沒有什麼意義的,而且我們可能還想要阻止使用者這麼做。通過讓這個對象的所有方法報錯可以實現阻止創建這個對象的目的。但是這樣做會將錯誤信息延遲到運行時才獲得,並且要在客戶端進行可靠、詳盡的測試。所以最好在編譯時捕獲這些問題。也就是儘可能不創建無內容的接口或者說對象。
	謂詞,Java提供了一個叫做抽象方法的機制,這種方法是不完整的,僅有聲明而沒有方法體。語法:
		abstract void f();
	包含抽象方法的類叫做抽象類。如果一個類包含一個或多個抽象方法,該類必須被限定爲抽象的(否則,編譯器會報錯)
	如果一個抽象類不完整,那麼當我們視圖產生該類的對象時,編譯器會由於爲抽象類創建對象不完全而報錯。這樣,編譯器會確保抽象類的純粹性,我們不必擔心誤用。
	如果從一個抽象類繼承,並想創建該新類的對象,那麼就必須爲基類中的所有抽象方法提供方法定義。如果不這樣做(可以選擇不做),那麼導出類便也是抽象類,且編譯器將會強制我們用abstrace關鍵字來限定這個類。
	我們也可能會創建一個沒有任何抽象方法的抽象類。這個類包含任何abstract方法都顯得沒有實際意義,而且我也想要組織產生這個類的任何對象,那麼這樣做就有用了。
2、接口
	interface關鍵字使抽象的概念更向前邁進了一步。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章