该方法必须覆盖或实现超类方法

时间:2012-12-23 05:44:13

标签: java eclipse interface implementation superclass

快速提问。我正在使用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);

    }

任何想法?

4 个答案:

答案 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或更高。做项目>清洁。