【问题标题】:Multiple Inheritance and Interfaces多重继承和接口
【发布时间】:2013-07-30 12:36:12
【问题描述】:

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

【问题讨论】:

  • 请注意,多个实现的接口可以包含相同的方法。

标签: java jvm multiple-inheritance


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-08-12
    • 2012-06-10
    • 2017-03-24
    • 2013-12-06
    • 2013-10-22
    • 1970-01-01
    • 2014-12-31
    相关资源
    最近更新 更多