假设我有此接口(interface)A:

interface A
{
    void doThis();
    String doThat();
}

因此,我希望某些抽象类实现doThis()方法,而不是doThat()一个方法:
abstract class B implements A
{
    public void doThis()
    {
        System.out.println("do this and then "+ doThat());
    }

}

abstract class B2 implements A
{
    public void doThis()
    {
        System.out.println(doThat() + "and then do this");
    }
}

当您最终决定在常规类中实现de doThat方法时,就会出现错误:
public class C implements B
{
    public String doThat()
    {
        return "do that";
    }
}

此类导致我前面提到的错误:



现在,如果这个类的层次结构有效,那么任何人都可以吗?

最佳答案

您必须使用extends

public class C extends B

了解implementsextends关键字之间的区别很重要。因此,我建议您开始阅读以下问题:Implements vs extends: When to use? What's the difference?及其答案。

关于java - "The type B cannot be a superinterface of C; a superinterface must be an interface"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10435103/

10-10 08:14