Назад к задачам
Junior — Middle+
6

Модуль контроля доступа к данным сотрудников

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Разработать набор классов, реализующих механизм ограничения доступа к сведениям о работниках.

Базовый класс StaffMember:

  • name — публичное поле, доступное всем.
  • position — защищённое поле, видимое сотруднику и его руководителю.
  • salary — закрытое поле, доступное только самому сотруднику.

Класс Supervisor (наследник StaffMember):

  • Имеет возможность просматривать и изменять зарплаты подчинённых.
  • Может получать значение position у других сотрудников.

Класс Trainee (наследник StaffMember):

  • Не может получать доступ к полю salary, даже к своему.
  • Видит лишь name и position у остальных работников.

Требования:

  • Строго соблюдать принципы инкапсуляции.
  • Применять корректные модификаторы доступа (public, protected, private).
public class Main {
    public static void main(String[] args) {
        
        Employee manager = new Manager("Alice", "Manager", 5000);
        Employee intern = new Intern("Bob", "Intern");
        
        System.out.println(manager.getName());
        System.out.println(intern.getName());

        // менеджер меняет зарплату стажера

        // менеджер может видеть зарплату

        // стажер не может получить доступ к зарплате
    }
}