错误:“< Class>不是抽象的,不会覆盖抽象方法< method>" [英] Error: "<Class> is not abstract and does not override abstract method <method>"
问题描述
错误:
java:com.company.Bicycle不是抽象的,并且不会覆盖com中的抽象方法applyBreakes(int)。 company.Vehicle和Bike类相同。
java:com.company.Bicycle is not abstract and does not override abstract method applyBreakes(int) in com.company.Vehicle and same for the Bike class.
package com.company;
interface Vehicle {
//all are the abstract method.
void changeGear(int a);
void speedUp(int a);
void applyBreakes(int a);
}
class Bicycle implements Vehicle {
int speed;
int gear;
//to change speed
@Override
public void changeGear(int newGear) {
gear = newGear;
}
//to increase speed
@Override
public void speedUp(int increment) {
speed = speed + increment;
}
//to decrease speed
public void applyBreaks(int decrement) {
speed = speed - decrement;
}
public void printStates() {
System.out.println("speed: " + speed + " gear: " + gear);
}
}
class Bike implements Vehicle {
int speed;
int gear;
//to change gear
@Override
public void changeGear(int newGear) {
gear = newGear;
}
//to increase speed
@Override
public void speedUp(int increment) {
speed = speed + increment;
}
//to decrease speed
public void applyBreaks(int decrement) {
speed = speed - decrement;
}
public void printStates() {
System.out.println("speed: " + speed + " gear: " + gear);
}
}
class GFG {
public static void main(String[] args) {
//creating an instance of Bicycle
//doing some operations
Bicycle bicycle = new Bicycle();
bicycle.changeGear(2);
bicycle.speedUp(3);
bicycle.applyBreaks(1);
System.out.println("Bike present state :");
bicycle.printStates();
//creating instance of bike.
Bike bike = new Bike();
bike.changeGear(1);
bike.speedUp(4);
bike.applyBreaks(3);
System.out.println("Bike present state :");
bike.printStates();
}
}
推荐答案
因为您在界面(和/或实现)中拼错了方法名称。
Because you misspelled the method name in the interface (and/or in the implementation).
接口方法名称是 applyBreakes
,而实现称之为 applyBreaks
。
因此类不实现接口方法,而是定义新的(不相关的)方法。
Interface method name is applyBreakes
, while the implementations call it applyBreaks
.
So the classes don't implement the interface method, but instead define new (unrelated) methods.
P.S。正确的拼写(英文)将是applyBrakes。
P.S. The correct spelling (in English) would be "applyBrakes".
这篇关于错误:“< Class>不是抽象的,不会覆盖抽象方法< method>"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!