interface Rideable {
String getGait();
}
public class Camel implements Rideable {
String getGait() { return " mph, lope"; }
}
なぜコンパイルが失敗しますか?私は本当になぜコンパイルエラーがわからないのですか?なぜコンパイルが失敗するのですか? [Java]
interface Rideable {
String getGait();
}
public class Camel implements Rideable {
String getGait() { return " mph, lope"; }
}
なぜコンパイルが失敗しますか?私は本当になぜコンパイルエラーがわからないのですか?なぜコンパイルが失敗するのですか? [Java]
デフォルトでは、インターフェースのメソッドの修飾子はpublicです。あなたがそれを実装するとき。それは公開する必要があります。インターフェイスにそれを
メソッドを解決しなければならないあなたのgetGait方法にパブリック追加デフォルトでのパブリック抽象とデータメンバーであるアクセスラベルとして、公共の静的な最終的なデフォルトです。サブクラスの実装では、修飾子については言及していません。したがって、のデフォルト値はになります。実装時にアクセスラベルを制限することはできません。したがって、インタフェースのメソッドを実装する際にアクセス修飾子としてパブリックを提供する必要があります。
コンパイルエラーは何を伝えますか? – Reimeus
あなたはこのエラーを読んでいますか? – SLaks
インターフェイスメソッドは、デフォルトでpublicです。パッケージプライベートメソッドを使用してメソッドを実装しようとしています(より限定的です)。パブリックとプライベートプライベートの比較については、[このチャート](http://stackoverflow.com/a/33627846/276052)を参照してください。 – aioobe