Изучая вопросы 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;
}
}
и попытался получить доступ к значению стоимости в два раза
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. Я не понимаю, как это происходит.