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

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

override применяют только к методам и свойствам, помеченным в базе как virtual, abstract или уже перекрытым. Сигнатура должна совпадать с базовой. Внутри тела часто вызывают base.

Синтаксис

public override тип Метод() { // новая реализация }

Пример

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

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

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

"abcde"

Пример

Давайте вызовем базовую версию через base:

using System; class BaseSum { public virtual int GetValue() { return 3; } } class ExtraSum : BaseSum { public override int GetValue() { return base.GetValue() + 2; } } class Program { static void Main() { BaseSum item = new ExtraSum(); Console.WriteLine(item.GetValue()); } }

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

5

Пример

Давайте завершим абстрактный метод через override:

using System; abstract class BaseFmt { public abstract string Format(); } class PlainFmt : BaseFmt { public override string Format() { return "done"; } } class Program { static void Main() { BaseFmt item = new PlainFmt(); Console.WriteLine(item.Format()); } }

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

"done"

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

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