Объектно-ориентированное программирование на С#. Андрианова А.А - 89 стр.

UptoLike

89
закрытым полям базового класса из производного, их объявление должно
предваряться модификатором protected.
class Matrix
{
protected double[,] a;
. . .
}
Создание объекта дочернего класса производится с помощью
конструктора, при этом сначала происходит создание его базовой части
посредством вызова конструктора базового класса. Для такого вызова
используется специальный синтаксис, называемый инициализацией в
заголовке:
public ChildClass(список_параметров1):
base(список_параметров2)
{
. . .
}
где base(список_параметров2) вызов конструктора базового
класса.
Если вызов конструктора базового класса не указывается,
автоматически осуществляется вызов конструктора базового класса, не
имеющего параметров. Если ни одного конструктора в базовом классе нет, то
конструктор без параметров будет предоставлен компилятором. Тогда вызов
конструктора базового класса будет происходить автоматически. Если же в
базовом классе имеются только конструкторы с параметрами, возникнет
ошибка. Для ее исправления требуется определить в базовом классе
конструктор без параметров.
Заметим, что конструктор производного класса должен
инициализировать как базовую компоненту, так и собственную. Поэтому
параметры конструктора производного класса (список_параметров1)
содержат данные для инициализации обеих компонент. Далее параметры,
инициализирующие структурные свойства базового класса передаются его
конструктору (список_параметров2), а конструктор производного
класса инициализирует только собственную часть.
закрытым полям базового класса из производного, их объявление должно
предваряться модификатором protected.

   class Matrix
   {
      protected double[,] a;
      .   .    .
   }

      Создание объекта дочернего класса производится с помощью
конструктора, при этом сначала происходит создание его базовой части
посредством вызова конструктора базового класса. Для такого вызова
используется   специальный синтаксис, называемый инициализацией в
заголовке:

   public ChildClass(список_параметров1):
                                       base(список_параметров2)
   {
      .   .    .
   }


где base(список_параметров2) –             вызов конструктора базового
класса.
     Если вызов конструктора базового класса не указывается,
автоматически осуществляется вызов конструктора базового класса, не
имеющего параметров. Если ни одного конструктора в базовом классе нет, то
конструктор без параметров будет предоставлен компилятором. Тогда вызов
конструктора базового класса будет происходить автоматически. Если же в
базовом классе имеются только конструкторы с параметрами, возникнет
ошибка. Для ее исправления требуется определить в базовом классе
конструктор без параметров.
     Заметим,     что   конструктор    производного    класса    должен
инициализировать как базовую компоненту, так и собственную. Поэтому
параметры конструктора производного класса (список_параметров1)
содержат данные для инициализации обеих компонент. Далее параметры,
инициализирующие структурные свойства базового класса передаются его
конструктору (список_параметров2), а конструктор производного
класса инициализирует только собственную часть.


                                                                       89