2016-04-19 18 views
-2
interface Rideable { 

    String getGait(); 

} 

public class Camel implements Rideable { 

    String getGait() { return " mph, lope"; } 

} 

爲什麼編譯失敗?我真的不知道爲什麼編譯錯誤?爲什麼編譯失敗? [Java]

+0

編譯錯誤告訴你什麼? – Reimeus

+0

你讀過錯誤了嗎? – SLaks

+0

默認情況下,接口方法是公共的。你正試圖用一個包私有方法來實現這個方法(這是更具限制性的)。請參閱[此圖表](http://stackoverflow.com/a/33627846/276052)以瞭解公共和私有包之間的比較。 – aioobe

回答

2

默認情況下,接口方法的修飾符是公共的。所以當你實現它。它需要公開。添加公開你的getGait方法應該解決它

1

方法在界面在默認情況下公衆和抽象和數據成員默認情況下公共,靜態和最終作爲訪問標籤。在子類實現中,你沒有提到任何修飾符。所以它會有默認的訪問權限。在給出實現的同時,您不能限制(提供更少的)訪問標籤。所以你必須在實現接口的方法時提供public作爲訪問修飾符。