logo search
CSharp_Prog_Guide

Запечатанные классы и члены классов

Классы можно объявлять в качестве запечатанных. Для этого в определении класса необходимо перед ключевым словом class поместить ключевое слово sealed. Пример.

public sealed class D

{

// Class members here.

}

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

Член класса, метод, поле, свойство или событие для производного класса, переопределяющего виртуальный член базового класса, может объявлять этот член как запечатанный. Это делает бесполезным виртуальный аспект члена для каждого последующего производного класса. Для этого в объявлении члена класса необходимо перед ключевым словом override поместить ключевое слово sealed. Пример.

public class D : C

{

public sealed override void DoWork() { }

}

How to: Define Abstract Properties

The following example shows how to define abstract properties. An abstract property declaration does not provide an implementation of the property accessors -- it declares that the class supports properties, but leaves the accessor implementation to derived classes. The following example demonstrates how to implement the abstract properties inherited from a base class.

This sample consists of three files, each of which is compiled individually and its resulting assembly is referenced by the next compilation:

To compile the example, use the following command:

csc abstractshape.cs shapes.cs shapetest.cs

This will create the executable file shapetest.exe.

Example

This file declares the Shape class that contains the Area property of the type double.