Java为什么不支持多继承?
- 114 次检阅

Java为什么不支持多继承?这个问题其实真的挺简单。

我们可以先举一个多重继承错误的例子,我们定义一个动物(类)既是狗(父类1)也是猫(父类2),两个父类都有“叫”这个方法。那么当我们调用“叫”这个方法时,它就不知道是狗叫还是猫叫了,这就是多重继承的冲突。

所以,如果你需要弄一个既要有猫叫又要有狗叫的什么鬼动物来的话,那么只需要创造一个描述这类行为的接口,然后在自己的类里面实现这个行为的接口,最终就能实现所谓的行为来了....

因此,Java支持接口的多继承,不支持类的多继承,Java不支持类的多继承的一个原因是避免实现方法的版本冲突

所以需要实现多继承,那么就是下面的

多接口+组合=多继承

下面我们实现一个多继承的例子,即一个接口people类,里面有一个say方法和一个work的行为方法,再有一个Chinese接口类和American接口类去继承了people的接口,然后二者结婚生下了一个中美的混血儿..ChandAm类...

所以,从上面的例子不难发现,Java其实是支持多继承的,具体为:
  • Java中的接口支持多继承(接口与接口之间为继承关系),因为接口不提供具体实现方式,只是一种规范,所以支持。
  • Java的类是支持多接口的实现。
  • Java的类是不支持多继承的,原因是Java是强类型语言,多继承会导致调用的不确定性,所以Java的类不支持。
分享到:

这篇文章还没有评论

发表评论