"The type B cannot be a superinterface of C; a superinterface must be an interface" error
<p>Let's assume I got this interface A:</p>

<pre><code>    interface A
{
    void doThis();
    String doThat();
}
</code></pre>

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

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

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

<pre><code>    public class C implements B
{
    public String doThat()
    {
        return "do that";
    }
}
</code></pre>

<p>This class leads me to the error aforementioned:</p>

<blockquote>
  <p>"The type B cannot be a superinterface of C; a superinterface must be an interface"</p>
</blockquote>

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