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