0

次のクラスを検討してください。

public class A {
    public void foo() {
        System.out.println("A.foo()");
    }

    public void bar() {
        System.out.println("A.bar()");
        foo();
    }
}

public class B extends A {
    public void foo() {
        System.out.println("B.foo()");
    }

    public static void main(String[]
    args) {
        A a = new B();
        a.bar();
    }
}

このコードの出力はA.bar()、次にB.foo(). publicメソッド foo() のアクセス レベルをからprivate出力に変更すると、次のようになることに気付きましA.bar()A.foo()

なんで?

4

1 に答える 1