scjp の質問を調査しているときに、この動作に遭遇しましたが、これは奇妙でした。
次のように、Item と Bolt の 2 つのクラスを宣言しました。
class Item {
int cost = 20;
public int getCost() {
return cost;
}
}
class Bolt extends Item {
int cost = 10;
public int getCost() {
return cost;
}
}
cost の値に 2 回アクセスしようとしました
public class Test {
public static void main(String[] args) {
Item obj = new Bolt();
System.out.println(obj.cost);
System.out.println(obj.getCost());
}
}
得られる出力は 20 10 です。これがどのように起こるのか理解できません。