document.write('

Java语言不支持多重继承,但是可以通过实现多个接口的方式来间接地实现多重继承。那么为什么Java 语言没有被设计为支持多重继承的语言呢?一般认为主要有如下两个原因: 1)C++语言实现了多重继承,而Java语言没有,这显然不是因为技术无法实现的原因,而是为了程序 的结构能够更加清晰从而便于维护。假设Java语言支持多重继承,类C继承自类A和类B,如果类A和类 B中都有自定义的方法f(),那么当在代码中调用类C的f()方法时,无法确定是调用类A还是类B的方法, 将会产生二义性。这种实现将非常不利于系统的维护。但是Java语言却可以通过实现多个接口的方式间 接地支持多重继承,由于接口只有方法体,没有方法实现,假设类C实现了接口A和接口B,即使它们都 有方法f(),但由于接口A和接口B中方法的定义没有实现,只有类C中才会有一个方法的实现,因此,也 就不存在二义性了。 2)多重继承会使类型转换、构造方法的调用顺序变得非常复杂,当然也会影响到性能。 由于在实际情况下没有必须使用多重继承的场景,因此,为了设计简单,同时拥有好的性能,Java语 言最终没有支持多重继承。

');