2017-05-31 40 views
-1

所以我有一個名爲Moon的類,它實現了兩個接口Inhabitable和Orbitable,兩個接口都有兩個抽象方法。在我的班上,我重寫了兩種抽象方法。 Orbitable是給我沒有錯誤,但居住是。這是錯誤。月亮不是抽象的

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); 
} 

可居住接口

public interface Inhabitable 
{ 
    public abstract void chanceOfLife(int oxygen); 
} 
+3

投票關閉作爲印刷錯誤 –

+1

當然,使用'@ Override'註釋來表示您認爲覆蓋其他方法的方法。編譯器會尖銳地告訴你他們沒有。 –

+0

'chanceOflife'!= = chanceOfLife':'l'!='L' –

回答

6

chanceOfLife(int oxygen)chanceOflife(int oxygen),它是資本L.

有需要時覆蓋的方法是明確的,雖然它只是一個錯字幾件事情:

你必須有相同的方法簽名(方法名稱和參數)當你重寫一個方法。

您不必在接口方法中輸入public abstract。默認情況下,接口中的所有方法都是public和abstract。

根據氣墊船Full Of Eels的評論,當你重寫一個方法時,使用Override,它會檢查覆蓋是否可以。

+1

我曾期待讓你失望,因爲來吧,這是一個錯字的答案,但這實際上是一個非常翔實的答案。做得好。 –

+0

@MadPhysicist謝謝Mad。當我們清楚基本概念時,它會減少錯字:) – haifzhan

+0

如果您還提到有關使用'@ Override'的相關信息以及它如何提供幫助,則更好。 –

相關問題