對象導論之單根繼承結構

單根繼承結構
  在OOP中,自C++面世以來就已變得非常矚目的一個問題就是,是否所有的類最終都繼承自單一的基類。在Java中(事實上還包括除C++以外的所有OOP語言),答案是yes,這個終極基類的名字就是Object。事實證明,單根繼承結構帶來了很多好處。
  在單根繼承結構中的所有對象都具有一個共用接口,所以它們歸根到底都是相同的基本類型。另一種(C++所提供的)結構是無法確保所有對象都屬於同一個基本類型。從向後兼容的角度看,這麼做能夠更好地適應C模型,而且受限較少,但是當要進行完全的面向對象程序設計時,則必須構建自己的繼承體系,使得它可以提供其他OOP語言內置的便利。並且在所獲得的任何新類庫中,總會用到一些不兼容的接口,需要花力氣(有可能要通過多重繼承)來使新接口融入你的設計之中。這麼做來換取C++額外的靈活性是否值得呢?如果需要的話——如果在C上面投資巨大,這麼做就很有價值。如果是剛剛從頭開始,那麼像kava這樣的選擇通常會有更高的生產率。
  單根繼承結構保證所有對象都具備某些功能。因此你知道,在你的系統中你可以在每個對象上執行某些操作。所有對象都可以很容易地堆上創建,而參數傳遞也得到了極大的簡化。
  單根繼承結構使垃圾回收器的實現變得容易得多,而垃圾回收器正是Java相對C++的重要改進之一。由於所有對象都保證具有其類型信息,因此不會因無法確定對象的類型而陷入僵局。這對於系統及操作(如異常處理)顯得尤其重要,並且給編程帶來了更大的靈活性。

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