我見過很多例子說明了多繼承的危險。爲什麼鑽石死亡而不是死亡三角
的例子是像通常的B類和C延伸A類,d延伸類B和C.
B和C二者覆蓋從A的方法,例如說,等於();
然後當調用D.equals();它不知道哪一個從其父應該叫
提供的equals()在D
從我看到的卻是沒有被覆蓋,是不是A級在這個例子中多餘的?如果我們從這個層次結構中刪除A並且只看B和C,如果B和C都有方法equals(),那麼當D擴展B和C時,它仍然會有同樣的問題,所以它不是真的死亡三角?
我不確定我的假設是否會導致某些其他語言的編譯時錯誤。
希望有人能爲我澄清它。
不會讓它成爲'死亡V' – Craig
我認爲這個設計相關問題更適合http://programmers.stackexchange.com/。 –
我認爲「鑽石」只是說明了B類和C類都擴展了A類,儘管A本身不會造成任何麻煩。 – Janman