我见过很多例子说明了多继承的危险。为什么钻石死亡而不是死亡三角
的例子是像通常的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