java編程思想讀書筆記 第八章多態

第八章多態


1.多態通過分離做什麼和怎麼做,從另一角度將接口和實現分離開來,多態不但能夠改善代碼的組織結構和可讀性,還能夠創建可擴展的程序。Java中除了static方法和final方法(private方法屬於final方法),其他所有的方法都是後期綁定。這意味着通常情況下,我們不必判定是否應該進行後期綁定—它會自動發生。如果父類構造函數拋出異常,子類構造函數一定要拋出,不能被捕獲。


2.只有非靜態的方法纔有可能構造多態,屬性成員(即使是public)與靜態方法不會造成多態,即使用子類重寫了這些屬性成員與靜態方法,因爲這此是在編譯期進行解析的,而不是在運行時間確定的。因此在調用屬性成員與靜態方法時只與調用它的引用類型相關。


3.構造器的調用順序:(1)調用基類構造器(從最低層的導出類)(2)按聲明順序調用成員的初始化方法。(3)調用導出類構造器的主體


4.向上轉型是安全的,因爲基類不會具有大於子類的接口,因此,通過基類接口發送的消息保證都能被接;由於向下轉型是不安全的,所以在Java語言中,所有向下轉型都會得到檢查!所以即使我們只是進行一次普通的加括弧形式的類型轉換,但在進入運行期時仍然會對其進行檢查,以便保證它的確是我們希望的那種類型,如果不是,運行時就會拋出一個ClassCastException的類型轉換異常,這種在運行期間對類型進行檢查的行爲稱作“運行時類型識別。


在程序執行前進行綁定叫做前期綁定;在運行時根據對象的類型進行綁定叫後期綁定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章