摘要:在面向對象的程序設計語言中,多態是繼數據抽象和繼承之后的第三種基本特征。
在面向對象的程序設計語言中,多態是繼數據抽象和繼承之后的第三種基本特征。
1.再論向上轉型多態作用:消除類型之間的耦合關系.
2.轉機綁定:將一個方法調用同一個方法主體關聯起來.
前期綁定:在程序執行前就進行綁定(面向過程語言默認綁定方式).
后期綁定:也叫動態綁定或運行時綁定,在運行時根據對象的類型進行綁定.
Java中除了static方法和final方法(private方法屬于final方法)之外,其他所有的方法都是后期綁定.
只有普通的方法調用可以是多態的(任何域訪問操作都將由編譯器解析,因此不是多態的).
如果某個方法是靜態的,它的行為就不具有多態性(靜態方法是與類,而非與單個的對象相關聯的).
3.構造器和多態構造器并不具有多態性(隱式聲明的static方法).
構造器的調用順序:1.調用基類構造器,反復遞歸;2.按聲明順序調用成員的初始化方法;3.調用導出類構造器 的主體.
構造器的調用順序是很重要的.再構造器內部,必須確保所要使用的成員都已經構建完畢.
通過組合和繼承方法來創建新類時,永遠不必擔心對象的清理問題,子對象通常都會留給垃圾回收器進行處理.
對象銷毀的順序應該和初始化順序(聲明順序,初始化時按照聲明順序進行的)相反.
對于基類,應該首先對其導出類進行清理,然后才是基類.
成員對象中存在于其他一個或多個對象共享的情況,需要使用"引用計數"來跟蹤仍舊訪問者共享的對象數量.
初始化的實際過程:1.在其他任何事物發生之前,將分配給對象的存儲空間初始化成二進制的零;2.調用基類構造器;3.按照聲明的順序調用成員的初始化方法;4.調用導出類的構造器主體.
準則:用盡可能簡單的方法使對象進入正常狀態;如果可以的話,避免調用其它方法.
在構造器內部唯一能夠安全調用的方法是基類中的final方法(也適用于private方法),因為這些方法不能被覆蓋.
4.協變返回類型Java SE5中添加了協變返回類型,它表示在導出類中的被覆蓋方法可以返回基類方法的返回類型的某種導出類型.
5.用繼承進行設計不能在運行期間決定繼承不同的對象,因為它要求在便宜期間完全確定下來.
準則:用繼承表達行為間的差異,并用字段表達狀態上的變化.
純繼承:"is-a",擴展:"is-like-a".
擴展缺點:導出類中接口的擴展部分不能被基類訪問,因此,一旦使用向上轉型,就不能調用那些新方法.
向下轉型(cast):在繼承層次中向下移動,能夠獲取類型信息.
Java中所有轉型都會得到檢查.
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71557.html
摘要:多態的作用是消除類型之間的耦合關系。編寫構造器準則用盡可能簡單的方法使對象進入正常狀態,如果可以的話,避免調用其他方法。 點擊進入我的博客 在面向對象的程序設計語言中,多態是繼數據抽象(封裝)和繼承之后的第三種基本特征。多態通過分離做什么和怎么做,從另一角度將接口和實現分離開來。多態的作用是消除類型之間的耦合關系。 8.1 再論向上轉型 對象既可以作為它自己的本類使用,也可以作為它的...
摘要:為什么不是面向對象不是面向對象,因為它包含個原始數據類型,例如。自定義類加載器繼承的自定義類加載器。可以像下面這樣指定參數面試題面向對象,類加載器,基礎概念它們的關系如下啟動類加載器,實現,沒有父類。自定義類加載器,父類加載器為。 1. 為什么說Java是一門平臺無關語言? 平臺無關實際的含義是一次編寫到處運行。Java 能夠做到是因為它的字節碼(byte code)可以運行在任何操作...
摘要:為什么不是面向對象不是面向對象,因為它包含個原始數據類型,例如。自定義類加載器繼承的自定義類加載器。可以像下面這樣指定參數面試題面向對象,類加載器,基礎概念它們的關系如下啟動類加載器,實現,沒有父類。自定義類加載器,父類加載器為。 1. 為什么說Java是一門平臺無關語言? 平臺無關實際的含義是一次編寫到處運行。Java 能夠做到是因為它的字節碼(byte code)可以運行在任何操作...
閱讀 1058·2021-11-22 15:33
閱讀 3369·2021-11-08 13:20
閱讀 1384·2021-09-22 10:55
閱讀 2058·2019-08-29 11:08
閱讀 777·2019-08-26 12:24
閱讀 3074·2019-08-23 17:15
閱讀 2235·2019-08-23 16:12
閱讀 1942·2019-08-23 16:09