【问题标题】:Java - Implement two interfaces with different methodsJava - 用不同的方法实现两个接口
【发布时间】:2016-07-23 13:55:21
【问题描述】:

假设有两个接口,它们有不同的方法。我在一个类中实现这两个接口并使用这两个接口的方法。

interface A { void show1(); }
interface B { void show(); }

public class test implements A, B{
    @Override
    void show1(){
        System.out.println("show1");
    }

    @Override
    void show(){
        System.out.println("show");
    }
}

多重继承的定义:

多重继承是一些面向对象的计算机编程语言的一种特性,其中一个对象或类可以从多个父对象或父类继承特性和特性。

问题

我可以说我在我的程序中所做的是多重继承吗?如果不是,为什么?

注意

我正在使用 Java 7。

【问题讨论】:

  • Java支持接口的多重继承,但不支持实现。
  • “但不执行”。 . @JonSkeet。 .这是什么意思?
  • 您可能想了解extendsimplements 之间的区别
  • 假设您从 Wikipedia 复制了描述,那么在同一页面上有许多对 Java 的引用,它们对其进行了描述。例如,参见en.wikipedia.org/wiki/Multiple_inheritance#Mitigation 的最后几段。
  • 这个链接应该有助于清除差异stackoverflow.com/questions/3556652/…

标签: java inheritance interface multiple-inheritance


【解决方案1】:

我认为多个接口的实现不是多重继承。

您的对象可能具有多个接口的实现。例如,您的 Car 对象可能具有像 BreakStatusFuelTank 接口之类的接口,但它没有将 Car 定义为 的子类型/派生类型em>BreakStatusFuelTank

继承是:一个对象extends其他对象(父)属性和/或行为。

Java 对象不支持多重继承(扩展多个对象)类似class Child extends Parent1, Parent2 {}

注意 Java 接口支持扩展多个接口,例如interface I3 extends I1, I2 {}

【讨论】:

    【解决方案2】:

    没有。因为接口的主要目的是抽象,这意味着对外部隐藏实现细节。因此,如果您实现一个或多个接口,则该关系是like a 关系而不是is a 关系。

    使用接口的另一个目的是类之间的松散耦合。 (抽象的副作用)。

    See this is a nice example

    【讨论】:

      【解决方案3】:

      是的,您正在使用多个接口实现多重继承,您可以在其中继承两个不同接口的定义。

      在java中,多重继承是通过Multiple接口实现的。默认情况下,接口中的方法总是抽象的,这不允许它们在接口本身中给出它们的实现(或方法定义)。

      【讨论】:

        【解决方案4】:

        是的,您在程序中所做的是多重继承。

        Java 编程语言支持类型的多重继承,这是一个类实现多个接口的能力。一个对象可以有多种类型:它自己的类的类型和该类实现的所有接口的类型。

        https://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-19
          • 1970-01-01
          • 2011-12-13
          • 2015-03-23
          • 1970-01-01
          • 2015-11-21
          • 2014-08-15
          相关资源
          最近更新 更多