私はJavaを学んでいて、private
修飾子がバインディングにどのように影響するかを理解しようとしています。protected
public
私はこのコードを書きました:
public class A {
public void a() {
System.out.println("a in A.");
b();
}
private void b() {
System.out.println("b in A.");
}
public static void main(String[] args) {
B obj = new B();
obj.a();
}
}
class B extends A {
public void b() {
System.out.println("b in B.");
}
}
出力は次のとおりです。
a in A.
b in A.
それでもB
独自のb
メソッドをobj
持ち、B
のインスタンスです。出力が次のようにならないのはなぜですか?
a in A.
b in B.
しかし、b
メソッドをA
次のように変更すると:
public void b() {
System.out.println("b in A.");
}
出力は期待どおりに変わります。
a in A.
b in B.
では、キーワード in でb
宣言すると、仮想関数のように動作しないのはなぜですか?private
A