一个常见的“问题,答案是否”是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的内容?
答案 0 :(得分:2)
在运行时,JVM确实有接口的概念。通过接口类型调用的方法将使用invokeinterface调用。
将接口编译为抽象类是行不通的: