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