1.多重繼承有副作用:鑽石問題(菱形繼承)。
假設類 B 和類 C 繼承自類 A,且都重寫了類 A 中的同一個方法,而類 D 同時繼承了類 B 和類 C,那么此時類 D 會繼承 B、C 的方法,那對於 B、C 重寫的 A 中的方法,類 D 會繼承哪一個呢?這里就會產生歧義。
2.考慮到這種二義性問題,Java 不支持多重繼承。但是 Java 支持多接口實現,因為接口中的方法,是抽象的(從JDK1.8之后,接口中允許給出一些默認方法的實現,這里不考慮這個),就算一個類實現了多個接口,且這些接口中存在某個同名方法,但是我們在實現接口的時候,這個同名方法需要由我們這個實現類自己來實現,所以並不會出現二義性的問題。