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

Ключевое слово base

В конструкторе наследника base(...) передаёт аргументы конструктору базы. В методе с override выражение base.Метод() выполняет реализацию базовой версии. Обратиться к base можно только из производного класса.

Синтаксис

public Derived(тип arg) : base(arg) { } public override тип Метод() { return base.Метод(); }

Пример

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

using System; class BaseRow { public string Text; public BaseRow(string text) { Text = text; } } class DerivedRow : BaseRow { public DerivedRow(string text) : base(text) { } } class Program { static void Main() { var item = new DerivedRow("abcde"); Console.WriteLine(item.Text); } }

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

"abcde"

Пример

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

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

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

"12345a"

Пример

Давайте вызовем ToString базы через base:

using System; class Row { public override string ToString() { return base.ToString() + " row"; } } class Program { static void Main() { var item = new Row(); Console.WriteLine(item.ToString()); } }

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

"Row row"

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

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