Проблема наследования Java

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

14
задан ROMANIA_engineer 10 February 2016 в 23:30
поделиться