在探索 scjp 问题时,我遇到了这种奇怪的行为。
我已经声明了两个类 Item 和 Bolt 如下:
class Item {
int cost = 20;
public int getCost() {
return cost;
}
}
class Bolt extends Item {
int cost = 10;
public int getCost() {
return cost;
}
}
并尝试两次访问 cost 的值
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。我不明白这是怎么发生的。