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?
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.
Since B
is a class, the correct syntax is to use extends
:
public class C extends B {
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With