これは、メソッドで呼び出している現在のオブジェクトを参照していると思ったので、混乱しています。
では、継承されたメソッドを呼び出したときに、オブジェクトのインスタンス変数 x が変更されなかったのはなぜでしょうか? スーパークラス:
public class SuperBoss
{
int x = 50;
public void changeX()
{
this.x = 20;
}
}
サブクラス:
public class Boss extends SuperBoss
{
int x = 10;
public static void main(String[] args)
{
Boss b = new Boss();
b.changeX();
System.out.println(b.x); //prints 10
}
}
20 ではなく 10 と表示されるのはなぜですか?