Классы в системе общих типов CTS
Обновлен: Ноябрь 2007
В объектно-ориентированном программировании в классе определяются операции, которые можно выполнять с объектом (методы, события или свойства), а также значение, отражающее состояние этого объекта (поля). Класс может иметь один или несколько членов без реализации несмотря на то, что обычно он включает и определение, и реализацию.
Экземпляром класса является объект. Доступ к функциональным возможностям объекта можно получить через вызов его методов, а также через доступ к его свойствам, событиям и полям.
В следующей таблице представлено описание некоторых характеристик, разрешенных для класса средой выполнения. (В этот список не включены дополнительные характеристики, доступные в классах с атрибутами.) В некоторых языках могут быть доступны не все эти характеристики.
Характеристика |
Описание |
---|---|
sealed |
Указывает на то, что из данного типа нельзя получить другой тип. |
implements |
Показывает, что в классе используется один или несколько интерфейсов за счет предоставления реализаций их членов. |
abstract |
Указывает на невозможность создания экземпляра класса. Чтобы его использовать, необходимо создать из данного класса производный класс. |
inherits |
Показывает, что экземпляры класса можно использовать везде, где задан базовый класс. В производном классе, наследуемом от базового, можно использовать реализацию любых виртуальных методов, предоставляемых базовым классом. В производном классе также можно переопределить эти методы с помощью собственной реализации. |
exported или not exported |
Показывает, виден ли класс за пределами сборки, в которой он определен. Применяется только к классам верхнего уровня. |
Вложенные классы также имеют характеристики членов. Дополнительные сведения см. в разделе Члены типов.
Члены классов, не имеющие реализации, являются абстрактными. Класс, содержащий несколько абстрактных членов, сам является абстрактным. Новые экземпляры этого класса создать нельзя. Некоторые языки, обращающиеся к среде выполнения, позволяют отмечать класс как абстрактный, даже если он не содержит ни одного абстрактного члена. Абстрактный класс можно использовать при необходимости инкапсуляции базового набора функциональных возможностей, которые могут наследоваться или переопределяться в производных классах. Классы, не являющиеся абстрактными, называются конкретными классами.
В классе может быть реализовано любое число интерфейсов, но наследоваться он может только от одного базового класса. Любой класс должен иметь по крайней мере один конструктор, который инициализирует новые экземпляры класса.
Каждый язык, поддерживающий среду выполнения, позволяет указывать наличие конкретных характеристик у класса или члена класса. При использовании соответствующего синтаксиса в используемом языке обеспечивается сохранение характеристик класса и его членов (в виде метаданных) вместе с реализацией этого класса.
См. также
Основные понятия
Интерфейсы в системе общих типов CTS