Выбор ответа Middle Dart: классы и миксины спрашивают часто обновлено
Dart: sealed-класс
Вопрос
Что верно про sealed class Result в Dart 3?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он абстрактный, прямые подтипы только в его библиотеке, switch проверяется на полноту. sealed закрывает иерархию: все прямые подтипы находятся в той же библиотеке, поэтому компилятор знает их полный список и требует исчерпывающий switch.
Варианты ответа
- Его нельзя наследовать вообще, даже в той же библиотеке: это запечатанный конечный класс
- Это синоним
final class: оба запрещают наследование снаружи и дают проверку полноты - Его можно создать напрямую через
Result(), если в нём нет абстрактных методов - Он абстрактный, прямые подтипы только в его библиотеке,
switchпроверяется на полнотуправильный ответ
Разбор
sealed закрывает иерархию: все прямые подтипы находятся в той же библиотеке, поэтому компилятор знает их полный список и требует исчерпывающий switch. Сам sealed-класс абстрактный, экземпляр создать нельзя. final class другой модификатор: запрещает наследование и реализацию вне библиотеки, но полноты switch не даёт.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Код-ревью: модель данных
Следующий вопрос
Миксины в Dart: как работают и где применяются