在寻找SCJP(Sun Certified Java Programmer)考试题目时,我遇到了这个我觉得奇怪的行为。
我声明了两个类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。我不明白为什么会这样。