Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpIhPr 38 of 147 menu
◀ ▶

Приватность при наследовании в Java

Модификатор private скрывает член только внутри объявившего класса. Потомок не видит приватное поле родителя - обращение this.title в Article к полю Post вызывает ошибку компиляции:

class Post { private String title = ""; public void setTitle(String title) { this.title = title; } public String getTitle() { return this.title; } } class Article extends Post { @Override public void setTitle(String title) { if (!title.isEmpty()) { this.title = title; // error } } }

Приватный метод родителя тоже недоступен в потомке:

class Post { private boolean notEmpty(String value) { return !value.isEmpty(); } } class Article extends Post { public boolean check(String value) { return notEmpty(value); // error } }

Публичные методы родителя по-прежнему можно вызывать у объекта потомка. Ограничение касается прямого доступа к private.

Попробуйте в классе Employee воспользоваться приватным полем родителя напрямую.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить