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

    String getGait(); 

} 

public class Camel implements Rideable { 

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

} 

なぜコンパイルが失敗しますか?私は本当になぜコンパイルエラーがわからないのですか?なぜコンパイルが失敗するのですか? [Java]

+0

コンパイルエラーは何を伝えますか? – Reimeus

+0

あなたはこのエラーを読んでいますか? – SLaks

+0

インターフェイスメソッドは、デフォルトでpublicです。パッケージプライベートメソッドを使用してメソッドを実装しようとしています(より限定的です)。パブリックとプライベートプライベートの比較については、[このチャート](http://stackoverflow.com/a/33627846/276052)を参照してください。 – aioobe

答えて

2

デフォルトでは、インターフェースのメソッドの修飾子はpublicです。あなたがそれを実装するとき。それは公開する必要があります。インターフェイスにそれを

1

メソッドを解決しなければならないあなたのgetGait方法にパブリック追加デフォルトでのパブリック抽象とデータメンバーであるアクセスラベルとして、公共の静的な最終的なデフォルトです。サブクラスの実装では、修飾子については言及していません。したがって、のデフォルト値はになります。実装時にアクセスラベルを制限することはできません。したがって、インタフェースのメソッドを実装する際にアクセス修飾子としてパブリックを提供する必要があります。

関連する問題