为什么 Java 语言不支持多重继承?

  • 为了程序的结构能够更加清晰从而便于维护。假设 Java 语言支持多重继承,类 C 继承自类 A 和类 B,如果类 A 和 B 都有自定义的成员方法 f(),那么当代码中调用类 C 的 f() 会产生二义性。

  • Java 语言通过实现多个接口间接支持多重继承,接口由于只包含方法定义,不能有方法的实现,类 C 继承接口 A 与接口 B 时即使它们都有方法 f(),也不能直接调用方法,需实现具体的 f() 方法才能调用,不会产生二义性。

  • 多重继承会使类型转换、构造方法的调用顺序变得复杂,会影响到性能。

最后更新于