Javaにおけるprotectedの使いどころ
javaでprotectedとつけると同じパッケージ内またはサブクラスから参照できると学びました。
サブクラスから参照できるというのはわかるのですが、同じパッケージ内のクラスからも参照できるというのがよくわかりません。
以下の例では、Bと関係のない同じパッケージ内のクラスがfooメソッドを呼び出せてしまいます。
そもそもBと関係のないクラスを同一パッケージ内に入れるべきではないということなのでしょうか。
もしかしたら私の考えすぎなのかもしれませんが、ご教授いただければ幸いです。
Java
1package sample; 2public class A { 3 private int x; 4 public A(int x) { 5 this.x = x; 6 } 7 8 protected void foo(int a) { 9 System.out.println(a); 10 } 11 12 public final void bar() { 13 foo(x % 2); 14 } 15}
Java
1package sample; 2public class B extends A { 3 public B(int x) { 4 super(x); 5 } 6 7 @Override 8 protected void foo(int a) { 9 System.out.println(a + 5); 10 } 11}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。