Введение в программирование

Производные классы


В среде VisualStudio.NET новый производный класс можно создать, используя окно ClassView (выполнив в нем команду контекстного меню Add|Add Class). Рисунок 16.1 иллюстрирует страницы диалога C# Class Wizard, предлагаемого средой VisualStudio.NET для создания нового класса.


Рис. 16.1.  Диалог C# Class Wizard

Имя создаваемого класса указывается в поле Class Name на странице Class Options диалога C# Class Wizard.

В поле Namespace указывается пространство имен, к которому будет принадлежать создаваемый класс. По умолчанию проект размещается в пространстве имен, одноименным с именем проекта.

В поле Access выбирается модификатор доступа для создаваемого класса.

Для класса в языке C# возможно использование двух модификаторов доступа:

  • public - определяет, что нет ограничений на использование класса;
  • internal - определяет, что класс будет доступен для файлов, входящих в ту же сборку.

Сборка - это физический файл, который состоит из нескольких PE-файлов (portable executable), генерируемых компилятором среды .NET. В сборку входит декларация (manifest), содержащая описание сборки для управляющей среды .NET.

Класс может имеет один из следующих модификаторов класса:

  • abstract - определяет, что класс должен быть использован только как базовый класс других классов. Такие классы называются абстрактными классами;
  • sealed - определяет, что класс нельзя использовать в качестве базового класса. Такие классы в языке C# иногда называются изолированными классами.

Очевидно, что изолированный класс не может быть одновременно и абстрактным классом.

Объявление класса может иметь следующее формальное описание:

МодификаторДоступа МодификаторКласса class ИмяКласса : ИмяНаследуемогоКласса {ТелоКласса }

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

Например:

namespace CA1 { public abstract class Class2 : CA1.Class1 { public Class2() { // TODO: Add constructor logic here } } }



Содержание раздела