为什么Java可以多继承interface,而不可以多继承class?

本文转载自,知乎-Slayer Qix

  • 如果B,C都继承与D且都改写了D里的同一个方法比如 void a()变成a1()a2()
  • 这个时候如果让A同时继承B和C该用a1 还是a2就成了问题。
  • Java为了规避这个麻烦事儿就直接不让用户多继承了。
  • 同时对于接口来说只规定了a方法没有实现因此就不会出现a()的两种实现版本,因此借口的继承也就不存在上面说的这个问题了。

图示

为什么Java可以多继承interface,而不可以多继承class?