繼承與組合

2021-06-27 02:50:28 字數 404 閱讀 3328

繼承與組合:

繼承是實現類重用的重要手段,但繼承有乙個最大的壞處:就是破壞封裝,相比之下,組合也是實現類重用的重要方式,而採用組合方式來實現類重用則能提供更好的封裝性。

繼承特點:

繼承子類擴充套件,得到父類的屬性和方法。(許可權允許的情況,子類可以直接訪問父類的屬性和方法,極大的破壞了封裝的特性)

從而造成子類和父類的嚴重耦合性。

從這個角度來看,父類的實現細節對子類不再透明。(解決方法,將不必要的屬性設定為private提供公共方法。)

利用組合實現復用:如需要復用乙個類,除了把這個類當成基類來繼承還可以把該類當成另乙個類的組合成分,從而允許直接復用該類的public 方法。組合把舊類物件作為新類屬性嵌入。實現新類功能。

繼承表達的是一種(is-a)的關係。 組合表達的是 (has -a)

繼承與組合

題目描述 已知類如下 1 birthdate 生日類 含有 year,month,day 等資料成員 2 teacher 教師類 含有 num,name,等資料成員 3 professor 教授類 含有 教師類和生日類的資料成員 要求 1 通過對teacher和birthdate使用繼承和組合的方式...

繼承與組合

1繼承與組合的含義 待看 組合 在其內部間資料內內型 繼承 這個新類很像原來的類 2 建構函式初始化 新類沒有權利訪問這個子類物件的私有成員,所以不能初始化。3 對子物件呼叫建構函式,建構函式初始化列表。4 成員物件初始化 5組合和繼承的聯合 6 建構函式和析構函式呼叫的次序 7 名字隱藏 繼承乙個...

繼承與組合

python中繼承和組合之間的區別 組合 通過對現有物件進行拼裝即組合產生新的更具複雜功能 class turtle def init self,x self.num x class fish def init self,x self.num x class pool def init self,x...