一个常见的“答案是否定的问题”是 Java 是否支持多重继承?
我正在寻找有关 (Oracle) JVM 如何处理此规则的详细说明;更具体地说:
在运行时,JVM 是否有任何接口(interface)的概念,或者只是将其视为碰巧未实现任何方法的抽象类?
换句话说,我的代码会变成这样吗?
我的代码:
public class A extends B implements C {
public interface C {
编译为:
public class A extends B, C {
public abstract class C {
在这种情况下,只要不超过一个父类实现方法,就可以说 JVM 支持多重继承。
或者接口(interface)是否更深入地融入到 JVM 的内部?
最佳答案
在运行时,JVM 确实有接口(interface)的概念。通过接口(interface)类型调用的方法通过 invokeinterface 进行调用。
将接口(interface)编译成抽象类是行不通的:
- 单个方法确实可以由一个类实现的多个接口(interface)来实现。
- 一个接口(interface)方法可以在多个实现该接口(interface)的类型上调用。
- 接口(interface)不提供其方法的实现。
关于java - 多重继承和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947209/