【问题标题】:Multiple inheritance of interfaces [duplicate]接口的多重继承[重复]
【发布时间】:2014-12-31 03:29:17
【问题描述】:

只是一个小小的困惑。 Java 不允许多重继承。那么一个接口如何扩展多个接口呢?我们可以称之为继承吗?

【问题讨论】:

  • 嗯...也许在 Java 8 中,您可以为接口提供默认方法。因为一个类可以实现多个接口,所以我们有多重继承之类的东西。
  • 实现多个接口是多态而不是继承
  • @Dmytro 那不正确。类型继承其超类型的所有公共成员。这包括所有方法定义、嵌套类型以及 static 类和接口类型的成员。
  • 作为记录,我发现this answer 提供了关于从多个类继承与从接口继承之间的主要区别的最佳解释。
  • @MarkoTopolnik 那么,现在你意识到实现和继承之间的区别了吗?

标签: java oop inheritance interface multiple-inheritance


【解决方案1】:

扩展多个接口的接口不构成多重继承。因为您没有继承任何功能。

public interface A {
    public void doSomething();
}

public interface B {
    public void doSomething();
}

public interface C extends A, B {

}

绝对没问题,因为您最终会得到一个使用(有效)一种方法的单一界面:

public interface C extends A, B {
    public void doSomething();    
}

【讨论】:

  • 谢谢,但假设接口 A 和 B 包含两种不同的方法(例如 m1 和 m2)。因此,当 C 扩展这两个接口时,它也将同时具有 m1 和 m2。因此,尽管 C 没有扩展任何功能,但它仍然获得了 A 和 B 的行为。那么如何证明这一点。
  • @Leo:这是合理的,因为它不会导致与多重继承相关的传统问题。您正在扩展接口的合同,而不是从类继承行为。
猜你喜欢
  • 2017-03-24
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 2013-08-31
相关资源
最近更新 更多