快速提问。我正在使用Eclipse并且我得到了该方法必须覆盖或实现超类方法错误,除了Eclipse使用Java 1.7的合规性。
这是我的代码:
public abstract class M4 implements Armory {
@Override
public Integer weaponAmmo(int wepAmmo) {
wepAmmo = 10;
return wepAmmo;
}
@Override
public Integer weaponDamage(int wepDamage) {
wepDamage = 2;
return wepDamage;
}
@Override
public String weaponName(String wepName) {
wepName = "M4";
return wepName;
}
这是接口代码:
public interface Armory {
public Integer weaponAmmo(int wepAmmo);
public Integer weaponDamage(int wepDamage);
public String weaponName(String wepName);
}
任何想法?
答案 0 :(得分:4)
您不需要在方法实现中使用@override
注释,因为您没有覆盖这些方法。 您只是实现了接口方法。覆盖任何超类方法时都需要此注释。
删除@Override
注释,它应该没问题。
答案 1 :(得分:1)
你没有压倒什么,你正在实施它们。所以我猜@Override可以删除。
编辑:我认为你的编译器在eclipse中设置为Java 1.5
Why does Eclipse complain about @Override on interface methods?
从java 1.6开始,允许在接口实现上使用@override。
答案 2 :(得分:1)
在Java 5中,@Override
仅允许覆盖超类方法的方法。由于Java 6 @Override
也允许实现接口方法的方法。
答案 3 :(得分:0)
即使Eclipse已设置为高于Java 1.5的合规性级别,也可能因为项目属性而发生此错误。右键单击您的项目>属性> Java编译器。此处也将其更改为1.6或更高。做项目>清洁。