多繼承指一個子類能同時繼承於多個父類,從而同時擁有多個父類的特徵,但缺點是顯著的。
1.若子類繼承的父類中擁有相同的成員變量,子類在引用該變量時將無法判別使用哪個父類的成員變量。
2.若一個子類繼承的多個父類擁有相同方法,同時子類並未重寫該方法(若重寫,則直接使用子類中重寫的方法),那麼調用該方法時,將無法確定調用哪個父類的方法。
假設A類和B類都有 t 方法,但具體實現細節不一樣。
C類則繼承A類和B類,當C類調用 t 方法時,會出現歧義。
因爲,A類和B類都有 t 方法,但具體的實現缺不一樣,那麼該調用哪個方法呢?
可以多實現是因爲,接口中的方法沒有具體實現。
實現多個接口時,就算兩個接口中有相同的方法,但也不會出現矛盾。
因此,Java僅允許單繼承,即一個子類只能繼承於一個父類。但爲了拓展子類的功能,Java使用接口以克服不使用多繼承帶來的不足。