Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1076 of 1492 menu
◀ ▶

Модификатор sealed

sealed class закрывает иерархию - от такого типа нельзя унаследовать класс. sealed override ставят на метод, который уже перекрыт через override, чтобы наследники не меняли его снова. Закрытый класс по-прежнему может реализовывать интерфейсы.

Синтаксис

sealed class Имя { } public sealed override тип Метод() { }

Пример

Давайте создадим экземпляр sealed класса:

using System; sealed class Token { public string Code = "abcde"; } class Program { static void Main() { var item = new Token(); Console.WriteLine(item.Code); } }

Результат выполнения кода:

"abcde"

Пример

Давайте закроем перекрытый метод через sealed override:

using System; class BaseA { public virtual string GetTag() { return "base"; } } class MiddleA : BaseA { public sealed override string GetTag() { return "sealed"; } } class Program { static void Main() { BaseA item = new MiddleA(); Console.WriteLine(item.GetTag()); } }

Результат выполнения кода:

"sealed"

Пример

Давайте унаследуем обычный класс и перекроем метод:

using System; class OpenBase { public virtual string GetCode() { return "12345"; } } class OpenDerived : OpenBase { public override string GetCode() { return "abcde"; } } class Program { static void Main() { OpenBase item = new OpenDerived(); Console.WriteLine(item.GetCode()); } }

Результат выполнения кода:

"abcde"

Смотрите также

  • override,
    который перекрывает виртуальный член
  • virtual,
    который открывает метод для перекрытия
  • abstract,
    который задаёт незавершённый контракт
  • наследование,
    которое sealed может оборвать
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить