Java FAQ:interface とは?

Java FAQ:S015 Q-01

interface C2008052400i {
    void foo();
}

class C2008052401 implements C2008052400i {
    void foo() {
        System.out.println("foo");
    }
}

public class C2008052400 {
    public static void main(String[] args) {
        new C2008052401().foo();
    }
}

で、

C2008052400.java:6: C2008052401 の foo() は C2008052400i の foo() を実装できません。スーパークラスでの定義より弱いアクセス特権 (public) を割り当てようとしました。
class C2008052401 implements C2008052400i {
^
エラー 1 個


「void foo() {」を「public void foo() {」に変更

interface C2008052410i {
    void foo();
}

class C2008052411 implements C2008052410i {
    public void foo() {
        System.out.println("foo");
    }
}

public class C2008052410 {
    public static void main(String[] args) {
        new C2008052411().foo();
    }
}

で、

foo