Выбор ответа Middle ООП в C# обновлено

Зачем sealed

Вопрос

Зачем помечать класс sealed?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Запретить наследование и дать JIT девиртуализировать вызовы. sealed запрещает наследоваться от класса (или переопределять метод дальше, если на override).

Варианты ответа

  1. Чтобы объекты класса нельзя было изменять после создания
  2. Чтобы класс нельзя было создать через new вне сборки
  3. Чтобы все методы класса автоматически стали потокобезопасными
  4. Запретить наследование и дать JIT девиртуализировать вызовыправильный ответ

Разбор

sealed запрещает наследоваться от класса (или переопределять метод дальше, если на override). Это делает поведение предсказуемым и позволяет JIT заменить виртуальные вызовы прямыми. Неизменяемость делается readonly-полями и init-свойствами, ограничение создания это internal-конструктор, потокобезопасность sealed не даёт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме