Выбор ответа Middle ООП в C# обновлено
Зачем sealed
Вопрос
Зачем помечать класс sealed?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Запретить наследование и дать JIT девиртуализировать вызовы. sealed запрещает наследоваться от класса (или переопределять метод дальше, если на override).
Варианты ответа
- Чтобы объекты класса нельзя было изменять после создания
- Чтобы класс нельзя было создать через
newвне сборки - Чтобы все методы класса автоматически стали потокобезопасными
- Запретить наследование и дать JIT девиртуализировать вызовыправильный ответ
Разбор
sealed запрещает наследоваться от класса (или переопределять метод дальше, если на override). Это делает поведение предсказуемым и позволяет JIT заменить виртуальные вызовы прямыми. Неизменяемость делается readonly-полями и init-свойствами, ограничение создания это internal-конструктор, потокобезопасность sealed не даёт.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «ООП в C#»
- Абстрактный класс или интерфейс
- protected internal и private protected
- Методы интерфейса по умолчанию
- Явная реализация интерфейса
- Банковские счета: инкапсуляция и инварианты
- Фигуры: полиморфная площадь
- Чем new отличается от override
- new и override при вызове через базовый тип