Java 错误:"&书信电报;类别>;不是抽象的,并且不重写抽象方法<;方法>&引用;

Java 错误:"&书信电报;类别>;不是抽象的,并且不重写抽象方法<;方法>&引用;,java,interface,Java,Interface,错误: java:com.company.Bicycle不是抽象的,并且不会覆盖com.company.Vehicle中的抽象方法applyBreakes(int),对于Bike类也是如此 因为您在接口(和/或实现)中拼错了方法名称 接口方法名为applyBreaks,而实现称之为applyBreaks。 因此这些类不实现接口方法,而是定义新的(不相关的)方法 另外,正确的拼写(英语)应该是“applyBrakes” “java:com.company.Bicycle不是抽象的,不重写 com

错误:

java:com.company.Bicycle不是抽象的,并且不会覆盖com.company.Vehicle中的抽象方法applyBreakes(int),对于Bike类也是如此


因为您在接口(和/或实现)中拼错了方法名称

接口方法名为
applyBreaks
,而实现称之为
applyBreaks
。 因此这些类不实现接口方法,而是定义新的(不相关的)方法


另外,正确的拼写(英语)应该是“applyBrakes”

“java:com.company.Bicycle不是抽象的,不重写 com.company.Vehicle中的抽象方法applyBreakes(int)和 自行车课。”

意味着Bicycle类有许多方法,但没有足够的方法成为完全定义的类


在这种情况下,缺少的方法是
Vehicle
说必须实现的方法,即
applyBreaks(int)
方法。

在接口中要实现的方法是
applyBreaks()
,但您在具体类中实现了
applyBreaks()

似乎是拼写错误。

幸运的是,如果您使用
@Override
注释所有重写/实现方法,就可以尽早防止这种编译错误

您使用了以下示例:

@Override
public void speedUp(int increment) {
    speed = speed + increment;
}
但你不是用:

public void applyBreaks(int decrement) {
    speed = speed - decrement;
}
@Override
对其进行注释,编译错误消息将更加明确:

@Override 
public void applyBreaks(int decrement) {
    speed = speed - decrement;
}

因为您在界面中调用了它
applyBreaks
,而不是
applyBreaks
…谢谢@Alex Shesterov
@Override 
public void applyBreaks(int decrement) {
    speed = speed - decrement;
}