gpt4 book ai didi

java - 为什么接口(interface)可以在抽象类中实现,而不能在其他接口(interface)中实现?

转载 作者:行者123 更新时间:2023-11-29 10:08:58 25 4
gpt4 key购买 nike

I know that an interface cannot implement in another interface as implementing means writing the body of the methods. This cannot be done in interfaces as none of the methods in the interface will have the body. {Upto Java 7}

但我很困惑,如果这就是接口(interface)不能相互实现的原因,那么为什么接口(interface)可以在抽象类中实现。由于抽象类不一定定义接口(interface)的所有方法。所以在某种程度上,抽象类并没有实现接口(interface)的所有方法。

最佳答案

接口(interface)不能使用implements,因为它们的目的是定义接口(interface),而不是提供实现。 (不过,它们可以扩展其他接口(interface)。)类的目的是提供实现,即使只是部分实现。

但就像几乎所有的规则一样,边缘是模糊的:

  • 抽象类实际上不需要实现任何东西。
  • 既然 Java 接口(interface)有默认方法,在某种意义上它们可以实现接口(interface),只是不使用关键字implements :

    interface A {
    void foo();
    }
    interface B extends A {
    void bar();
    default void foo() {
    System.out.println("foo");
    }
    }

    public class Example implements B
    {
    public static void main(String[] args) throws Exception {
    new Example().foo();
    }

    public void bar() {
    }
    }
  • 通常,人们不会费心去定义一个与类不同的接口(interface),而是使用类来定义它的接口(interface)提供它的实现。 (一些纯粹主义者对此有异议,但这是很常见的做法。)

但从根本上说:接口(interface)用于定义接口(interface),类用于提供实现。

关于java - 为什么接口(interface)可以在抽象类中实现,而不能在其他接口(interface)中实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52189212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com