русс | укр

C# - Главная
Контакты
Задайте вопрос...
Просмотр всех вопросов


Пространство имен
  ► System
  ► Microsoft


Для учеников (начинающих)
  ► Видео уроки
  ► Обучение
  ► Примеры программ
  ► Секреты в Си Шарп

Для профессионалов
  ► Обучение
  ► Примеры программ
  ► Задачки - для тебя!










Конструкторы при наследовании C#

Конструкторы не наследуются, но используются при создании объектов производных классов. При создании объекта производного класса, сначала вызывается конструктор базового класса, а затем производного класса.

По умолчанию, при создании объектов производного класса вызывается конструктор базового класса без параметров.

Что делать, если необходимо использование для базового класса конструктора с параметрами?

В этом случае нужно обязательно написать конструктор производного класса и в описании этого конструктора включить дополнительную запись. После имени конструктора в его описании поставить двоеточие, затем, написать ключевое слово base и в скобках значения параметров.

class B{

public int x;

public B(int xx)

{ x=xx; }

}

class C:B{

public C(int xx):base(xx) {}

}

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

В качестве базовых типов могут выступать интерфейсы, в этом случае класс может быть наследником многих интерфейсов.

Замечание:

Некоторые авторы определяют наследование, как создание нового класса на основе существующих. В этом случае, агрегация также подпадает под определение наследования, и ее называют наследованием по модели включение-делегирование.

Запрет наследования: классы объявленные как sealed

В некоторых случаях требуется запретить создание производных классов. Разработчики хотят, чтобы класс использовался только в том виде, в каком он создан, в этом случае ключевое слово sealed.

Класс String пространства имен System является закрытым для наследования.

Замечание: слово sealed не запрещает агрегацию.

Просмотров: 1926






© 2012 ci-sharp.ru При использовании материала прямая индексирующая ссылка на сайт ОБЯЗАТЕЛЬНА.
Права строго защищены нормами международного права, интеллектуальной собственности и авторского права.