A. 子類可以繼承父類的什麼
子類不能繼承父類的所有方法和屬性,只能繼承父類所有的非private(私有)的屬性和方法,而private成員是不能被繼承的。
打個比方:你能繼承你爸的財產,但不能繼承你爸的所有財產。因為你爸要養老,這是會把財產的一部分作為私有,不讓你繼承。 JAVA的繼承也就這樣。
父類中public,protected修飾的屬性,方法可以繼承,private修飾的屬性和方法不能被繼承。
有些編程語言支持多重繼承,即一個子類別可以同時有多個父類別,比如C++編程語言;而在有些編程語言中,一個子類別只能繼承自一個父類別,比如Java編程語言,這時可以利用介面來實現與多重繼承相似的效果。
現今面向對象程式設計技巧中,繼承並非以繼承類別的「行為」為主,而是繼承類別的「型態」,使得元件的型態一致。另外在設計模式中提到一個守則,「多用合成,少用繼承」,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。
(1)如果子類和父母不在一起怎麼繼承擴展閱讀
子類繼承父類的方式
1、公有繼承(public),公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的。
2、私有繼承(private),私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。
3、保護繼承(protected),保護繼承的特點是基類的所有公有成員和保護成員都成為派生類的保護成員,並且只能被它的派生類成員函數或友元訪問,基類的私有成員仍然是私有的。
參考資料來源:搜狗網路-繼承
參考資料來源:搜狗網路-繼承性
B. javascript中的常見繼承
JavaScript中的常見繼承方法有三種:原型繼承、借用構造函數繼承和組合繼承。
原型繼承
借用構造函數繼承
組合繼承
在實際開發中,可以根據項目的具體需求選擇合適的繼承方法。如果需要復用父類的方法且避免數據耦合,組合繼承通常是一個不錯的選擇。