Наследование private-свойств

Наследование private-свойств

Приватные свойства (поля) наследуются так же, как и открытые с тем лишь отличием, что прямой доступ к ним запрещён. Но из класса-наследника можно получить доступ к приватным полям родителя через сеттеры и геттеры родительского класса, если они там определены.


class Base {

    private int value = 10;

    void setValue(int val) {
        value = val;
    }

    int getValue() {
        return value;
    }
}


class Child extends Base {

    Child() {
       setValue(100);
    }
    

    public static void main(String[] args) {
        Base b = new Base();
        System.out.println(b.getValue()); // 10
        
        Child c = new Child();
        System.out.println(c.getValue()); // 100
        // c.value = 5; // ошибка компиляции, value - приватное поле
        c.setValue(5);
        System.out.println(c.getValue()); // 5
    }
}
Наследование