Java中鮮為人知的缺點(下)
發(fā)表時間:2023-07-27 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]最后討論一下無法繼承多種類的裝配問題。該問題的原因在于Java不允許多層繼承。 Java不能進(jìn)行多層繼承。這一點大多經(jīng)常作為其優(yōu)點而不是缺點而被提出來。C++允許多層繼承,但結(jié)果卻致使程序變得非...
最后討論一下無法繼承多種類的裝配問題。該問題的原因在于Java不允許多層繼承。
Java不能進(jìn)行多層繼承。這一點大多經(jīng)常作為其優(yōu)點而不是缺點而被提出來。C++允許多層繼承,但結(jié)果卻致使程序變得非常復(fù)雜,而且還產(chǎn)生了難以理解的錯誤。
多層繼承在裝配時會很復(fù)雜 多層繼承會在如下幾個方面導(dǎo)致混亂。第一是名稱的沖突。在繼承具有相同名稱的其他類時,不知道是哪個類的方法將會被調(diào)用(圖5)。這一點是在一個類繼承兩個已經(jīng)繼承了某一個類的類時經(jīng)常發(fā)生的問題。這種繼承稱為菱形繼承(圖6)。在分別改寫(override)最上層的類的方法后,就會引起被最下層的類所調(diào)用的問題。
http://china.nikkeibp.co.jp/china/img_data/030129java12.jpg |
圖5●在需要繼承兩個具有相同名稱的方法的超級類時,其名稱就會發(fā)生沖突。這一點是經(jīng)常被作為多層繼承的問題而指出來的地方(點擊放大) |