所以我有一个名为Moon的类,它实现了两个接口Inhabitable和Orbitable,它们都有两个抽象方法。在我班级的月亮中,我覆盖了两种抽象方法。 Orbitable给了我没有错误但是Inhabitable是。这是错误。
1 error found:
File: /personalFilename/ [line: 1]
Error: Moon is not abstract and does not override abstract method chanceOfLife(int) in Inhabitable
月亮班
public class Moon extends Planet implements Inhabitable, Orbitable
{
public Moon()
{
super();
}
public void orbitSpeed(int speed)
{
this.setDistance((speed / 6.28) * 8760);
}
public void chanceOflife(int oxygen)
{
this.setOxygenLevels(oxygen);
}
}
轨道界面
public interface Orbitable
{
public abstract void orbitSpeed(int speed);
}
Inhabitable界面
public interface Inhabitable
{
public abstract void chanceOfLife(int oxygen);
}
答案 0 :(得分:6)
chanceOfLife(int oxygen)
不是chanceOflife(int oxygen)
,而是大写字母L.
在覆盖方法时,您需要清楚一些事情,尽管这只是一个错字:
覆盖方法时,必须使用相同的方法签名(方法名称和参数)。
您不必将public abstract
放在接口方法中。接口中的所有方法都是public和abstract。
根据Hovercraft Full Of Eels的评论,当你覆盖一个方法时,使用Override
,它会检查被覆盖的是否正常。