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

Наследование

После имени класса пишут двоеточие и базовый тип. Производный класс наследует public и protected члены базы. Чтобы изменить поведение метода, используют virtual и override. Контракт без реализации задают через интерфейс.

Синтаксис

class Производный : Базовый { // дополнительные члены }

Пример

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

using System; class BaseRow { public string GetText() { return "abcde"; } } class DerivedRow : BaseRow { } class Program { static void Main() { var row = new DerivedRow(); Console.WriteLine(row.GetText()); } }

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

"abcde"

Пример

Давайте добавим поле только в производном классе:

using System; class BaseNum { public int Value = 1; } class ExtraNum : BaseNum { public int Extra = 2; } class Program { static void Main() { var item = new ExtraNum(); Console.WriteLine(item.Value + " " + item.Extra); } }

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

1 2

Пример

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

using System; class BaseLabel { public virtual string GetLabel() { return "base"; } } class DerivedLabel : BaseLabel { public override string GetLabel() { return "derived"; } } class Program { static void Main() { BaseLabel item = new DerivedLabel(); Console.WriteLine(item.GetLabel()); } }

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

"derived"

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

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