1

一个常见的“答案是否定的问题”是 Java 是否支持多重继承?

我正在寻找有关(Oracle)JVM如何处理此规则的详细说明;进一步来说:

在运行时,JVM 是否有任何接口的概念,还是只是将其视为碰巧没有实现任何方法的抽象类?

换句话说,我的代码会变成这样吗?

我的代码:

public class A extends B implements C {

public interface C {

编译成:

public class A extends B, C {

public abstract class C {

在这种情况下,只要不超过一个父类实现方法,就可以说 JVM 支持多重继承。

还是接口更深入地融入了 JVM 的内部?

4

1 回答 1

2

在运行时,JVM 确实有接口的概念。通过接口类型调用的方法使用invokeinterface调用。

将接口编译成抽象类是行不通的:

  • 一个方法确实可以由一个类实现的多个接口实现。
  • 一个接口方法可以在不止一种实现接口的类型上调用。
  • 接口不为其方法提供任何实现。
于 2013-07-30T13:17:22.597 回答