日期:2014-05-18  浏览次数:20686 次

为什么java只支持单继承?多继承的缺点在接口也同样存在
      我觉得很是奇怪,为什么java只支持单继承,我自己google了一下,很多人说多继承造成了一些结构性的混乱和运行时的一些逻辑错误,但是我想问,用多实现接口就不存在以上的缺点了吗?我觉得java应该实现多继承抽象类(或者说,作为父类的一些必须得是抽象类)和多实现接口,这样既符合面向对象设计,也符合日常开发需要。求大神指教。

------解决方案--------------------
比如A接口有个方法test,B接口也有个方法test,那么同时实现A和B接口的时候,test方法只有一个,没有任何歧义
而多继承的时候,A类有个test方法,B类也有个test方法,那么同时继承A和B的时候,test到底应该属于谁?是该调用A的test还是该调用B的test?这就是多继承的歧义
------解决方案--------------------
多继承时将多个职责混淆在一个类中,OO有单一职责原则,优先使用组合聚合,对于代码的维护性和可扩展性有好处,对于实现过个接口,这些接口的含义是不同的,有的接口是标示接口,接口的功能单一,但是有的接口是封装变化的,接口标示一种职责,这样看一个类继承多个接口,有点实现多个职责,但是这些多个接口,接口的含义是不同的,至于为啥不同,楼主自己体会吧。。。