Классы

Класс - это структура данных, которая может содержать описание данных (поля, константы, события), реализацию функциональных членов (процедуры/функции, свойства, конструкторы) и вложенные типы. Классы поддерживают механизм наследования, который позволяет производному классу расширять и специализировать базовый класс.

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

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

Сигнатура класса может содержать модификаторы доступа Public или Friend, а также модификаторы Abstract или 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;

Тело класса

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

Члены класса делятся на следующие категории:

Члены класса могут быть экземплярными и статическими. Экземплярные члены могут быть вызваны у экземпляра класса, статические - непосредственно у самого класса. Константы неявно являются статическими. Для определения статического члена класса в его сигнатуре указывается модификатор Shared.

Если в классе имеется член, наименование и сигнатура которого полностью совпадает с членом родительского класса, то происходит скрытие члена родительского класса. При этом компилятор выдаёт предупреждающее сообщение. Данное поведение не является ошибкой, для скрытия сообщения компилятора добавьте в сигнатуру члена модификатор New.

При объявлении свойств или событий системой резервируются методы с определённой сигнатурой. Учитывайте это при определении собственных членов класса.

Class A
    
Public Shared Sub Test();
    
Begin
    
End Sub;

    
Public Function Test1(): Integer;
    
Begin
        
Return 1
    
End Function;
End Class;

Class B: A
    
New Public Shared Sub Test();
    
Begin
    
End Sub;

    
New Public Function Test1(): Integer;
    
Begin
        
Return 1
    
End Function;
End Class;

См. также:

Руководство по языку Fore.NET