“类型B不能是C的超接口;超级接口必须是接口”错误
问题内容:
假设我有此接口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";
}
}
此类导致我前面提到的错误:
“类型B不能是C的超级接口;超级接口必须是接口”
现在任何人都可以,如果这种类层次结构有效,还是应该以其他方式进行处理?
问题答案:
您必须使用 extends
public class C extends B
了解implements
和extends
关键字之间的区别很重要。因此,我建议您开始阅读以下问题:实现与扩展:何时使用?有什么不同?和那里的答案。