18

このコードをコンパイルすると:

interface Rideable {
    String getGait();
}

public class Camel implements Rideable {
    int x = 2;

    public static void main(String[] args) {
        new Camel().go(8);
    }

    void go(int speed) {
        System.out.println((++speed * x++) 
        + this.getGait());
    }

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

次のエラーが表示されます。

Camel.java:13: error: getGait() in Camel cannot implement getGait() in Rideable
String getGait() {
       ^
  attempting to assign weaker access privileges; was public
1 error

インターフェイスで宣言された getGait メソッドはどのようにパブリックと見なされますか?

4

5 に答える 5

37

インターフェイス内で宣言されたメソッドは暗黙的にpublic. また、インターフェイスで宣言されたすべての変数は暗黙的public static final(定数) です。

public String getGait() {
  return " mph, lope";
}
于 2012-10-31T14:51:58.697 に答える
8

のすべてのメソッドは、明示的に宣言するかどうかに関係なく、interface暗黙的です。public詳細については、Java チュートリアル インターフェイス セクションを参照してください。

于 2012-10-31T14:51:52.940 に答える
-1

Camelクラス(Rideableの実装クラス)のgetGait()をpublicにする。

public String getGait() {
        return " mph, lope";
    }
于 2018-11-16T19:10:08.240 に答える