慎用多繼承

2021-08-03 21:01:39 字數 295 閱讀 2541

多繼承是對現實世界的模擬。但多繼承也帶來了單繼承所沒有的複雜性:

1.多繼承會帶來二義性。

當繼承的多個基類都具有相同的實函式的時候,派生類又沒有重新宣告,派生類物件呼叫該函式會產生二義性。

當繼承的多個基類都具有相同的虛函式時,子類可以重新定義他們,但是,乙個類只允許有唯一乙個沒有引數、名稱相同的函式。

2.多繼承會帶來菱形結構,而菱形結構卻是我們要極力避免的。

但是多繼承確實可以讓我們少定義乙個類。

方法:消除對虛基類傳遞構造函式引數的需要,避免在虛基類中放入資料成員。即使用協議類。

敏捷開發中要慎用繼承

participantsindb繼承了來自dbtable的方法,比如clear和getcount。對於participantsindb來講,clear這個方法的確是有用的 清空所有的參會者。但getcount就造成了一點點小意外了 通過participantsindb呼叫getcount這個方法時,...

繼承 多繼承

一 繼承 1 封裝 self引數傳入的是建立的物件,self可以直接將物件帶引數傳入類中方法,這種在物件中封裝資料,對類進行了優化的方法就叫封裝。2 當乙個繼承自另乙個累的時候,會先去子類裡面找,如果有先呼叫沒有去夫類找。1 class rectangle 矩形類 def init self,len...

繼承 多繼承

繼承 父類 基類 新內容 子類 派生類 子類繼承父類,子類繼承父類所有的成員變數和成員函式 父類有的子類都有,子類沒有的可以加 繼承方式 控制父類成員在子類中的訪問許可權 public private protected 格式 calss 子類 許可權 父類 規則 繼承方式 public 父類私有成...