Модификаторы класса

Определение класса может опционально содержать последовательность модификаторов:

class-modifiers:

class-modifier

class-modifiers   class-modifier

class-modifier:

Public

Friend

Abstract

Final

Появление одного и того же модификатора в определении класса приводит к ошибке компиляции. Модификаторы Public и Friend определяют область видимости класса. Модификаторы Abstract и Final описаны ниже.

Абстрактные классы

Модификатор Abstract указывает на то, что класс является незавершенным (неполным) и может быть использован только в качестве базового для других. Абстрактные классы отличаются от классов не являющихся абстрактными следующим образом:

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

Завершенные классы

Модификатор Final блокирует создание классов, производных от данного. При указании завершенного класса в качестве базового для другого возникает ошибка компиляции.

Модификатор Final обычно используется для запрещения нежелательного наследования, однако он также делает возможным некоторые оптимизации при выполнении кода. Например, возможно все вызовы виртуальных методов преобразовать в обычные, т.к. известно, что у данного класса не может быть наследников.

Пример

//Класс, доступный во всей сборке, а также в сборках
//где данная сборка подключена по ссылке
Public Class Class1
End Class;

//Класс, доступный во всей сборке
Friend Class Class2
End Class;

//Абстрактный класс
Abstract Class Class3
End Class;

//Класс, унаследованный от абстрактного
Class Class4: Class3
End Class;

//Завершенный класс, от которого нельзя наследовать
Final Class Class5
End Class;

См.также:

Классы