我们假设我有这个界面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的超接口;超接口必须是接口”
如果这种类的层次结构有效,或者我应该采取其他方式吗?
答案 0 :(得分:21)
您必须使用extends
public class C extends B
了解implements
和extends
关键字之间的区别非常重要。所以,我建议你开始阅读这个问题:Implements vs extends: When to use? What's the difference?以及那里的答案。
答案 1 :(得分:4)
由于B
是一个类,正确的语法是使用extends
:
public class C extends B {
答案 2 :(得分:2)
B是一个抽象类,不能与“implements”关键字一起使用。你必须改为使用“extends”。