お世話になっております。
ご質問です。
①BはAを継承しており、フィールドはprivateなので継承はされず、それぞれのフィールドを持っている。という認識は大丈夫でしょうか。
②上記の認識が間違っていないとすると、コード1でBクラスのインスタンスを生成し、その後継承されているvoid testメソッドを呼び出し、numを表示させようとしています。がしかし、私の認識では、Bクラスのフィールドの値の20が表示されるかと思っていたら、Aクラスの10の値が表示されました。
どのように理解したらよろしいでしょうか。
よろしくお願いします。
コード public class A { private int num = 10; void test(){ System.out.println(num); } } コード1 public class B extends A{ private int num = 20; public static void main(String[] args){ B b = new B(); b.test(); } }
回答2件
あなたの回答
tips
プレビュー