Java爲什麼不支持多繼承?

多繼承指一個子類能同時繼承於多個父類,從而同時擁有多個父類的特徵,但缺點是顯著的。


1.若子類繼承的父類中擁有相同的成員變量,子類在引用該變量時將無法判別使用哪個父類的成員變量。

2.若一個子類繼承的多個父類擁有相同方法,同時子類並未重寫該方法(若重寫,則直接使用子類中重寫的方法),那麼調用該方法時,將無法確定調用哪個父類的方法。

假設A類和B類都有 t 方法,但具體實現細節不一樣。

C類則繼承A類和B類,當C類調用 t 方法時,會出現歧義。

因爲,A類和B類都有 t 方法,但具體的實現缺不一樣,那麼該調用哪個方法呢?

可以多實現是因爲,接口中的方法沒有具體實現。
實現多個接口時,就算兩個接口中有相同的方法,但也不會出現矛盾。
因此,Java僅允許單繼承,即一個子類只能繼承於一個父類。但爲了拓展子類的功能,Java使用接口以克服不使用多繼承帶來的不足。

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