Выбор ответа Middle Современная Java: record, sealed спрашивают часто обновлено
Зачем sealed
Вопрос
Что даёт sealed interface Shape permits Circle, Square?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Компилятор знает всех наследников и проверяет полноту switch. sealed закрывает список наследников.
Варианты ответа
- Запрещает создавать объекты Shape через рефлексию и десериализацию
- Делает все реализации Shape неизменяемыми, как record
- Запрещает наследникам переопределять методы, объявленные в Shape
- Компилятор знает всех наследников и проверяет полноту switchправильный ответ
Разбор
sealed закрывает список наследников. Благодаря этому switch по Shape без default компилятор считает исчерпывающим, а при добавлении нового наследника все такие switch перестают компилироваться. Неизменяемость даёт record или final-поля, к sealed она отношения не имеет. Переопределять методы наследники могут. Рефлексия тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Современная Java: record, sealed»
- switch-выражение с yield
- Pattern matching
- record
- LTS-версии Java
- Фича и версия Java
- Guard в switch
- Наследование record
- Что генерирует record