多重继承和接口

时间:2013-07-30 12:36:12

标签: java jvm multiple-inheritance

一个常见的“问题,答案是否”是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的内容?

1 个答案:

答案 0 :(得分:2)

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

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

  • 单个方法实际上可以由一个类实现的多个接口实现。
  • 可以在多个实现接口的类型上调用接口方法。
  • 接口不提供其方法的实现。