月亮不是抽象的

时间:2017-05-31 21:37:54

标签: java

所以我有一个名为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);
}

1 个答案:

答案 0 :(得分:6)

chanceOfLife(int oxygen)不是chanceOflife(int oxygen),而是大写字母L.

在覆盖方法时,您需要清楚一些事情,尽管这只是一个错字:

覆盖方法时,必须使用相同的方法签名(方法名称和参数)。

您不必将public abstract放在接口方法中。接口中的所有方法都是public和abstract。

根据Hovercraft Full Of Eels的评论,当你覆盖一个方法时,使用Override,它会检查被覆盖的是否正常。