При изучении вопросов 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. Я не могу понять, как это происходит.