Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
676 views
in Technique[技术] by (71.8m points)

java - "The type B cannot be a superinterface of C; a superinterface must be an interface" error

Let's assume I got this interface A:

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

So, I want some abstracts classes to implement the method doThis() but not the doThat() one:

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");
    }
}

There error comes when you finally decide to implement de doThat method in a regular class:

public class C implements B
{
    public String doThat()
    {
        return "do that";
    }
}

This class leads me to the error aforementioned:

"The type B cannot be a superinterface of C; a superinterface must be an interface"

Anyone could now if this hierarchy of classes is valid or should I do other way round?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You must use extends

public class C extends B

Its important to understand the difference between the implements and extends Keywords. So, I recommend you start reading at this question: Implements vs extends: When to use? What's the difference? and the answers there.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...