Спецификация базового класса

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

class-base:

:   class-type

:   interface-type-list

:   class-type   ,   interface-type-list

interface-type-list:

interface-type

interface-type-list   ,   interface-type

Базовые классы

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

Производный класс наследует члены родительского класса. Область видимости родительского класса должна быть как минимум не меньше, чем область видимости производного от него. Родительскими классами не могут быть следующие классы: System.Array, System.Delegate, System.MulticastDelegate, System.Enum и System.ValueType.

Базовыми классами для данного являются его родительский класса, а также все базовые для него. Другими словами, множество базовых классов для данного образуется транзитивным замыканием отношения прямого наследования.

Любой класс имеет ровно один родительский, кроме класса Object. Класс Object не имеет родительского и является базовым для всех других классов.

Когда класс B является производным от класса A, то зависимость класса A от класса B (прямая или опосредованная) приведет к ошибке компиляции.

Реализация интерфейсов

Спецификация базового класса может содержать список интерфейсных типов. В этом случае говорится, что класс реализует данные интерфейсы. Реализация интерфейсов описана в разделе Интерфейсы: Реализация интерфейсов.

Пример

Public Interface IUserClass
    Sub Test1();
    Function Test2(): integer;
End Interface IUserClass;

Class A
    Protected Sub Run();
    Begin
        //Код процедуры
    End Sub;
End Class;

Class B: A, IUserClass
    Public Sub Test1();
    Begin
        //Код процедуры
    End Sub Test1;
    Public Function Test2(): integer;
    Var
        Result: integer;
    Begin
        //Код функции
        Return Result;
    End Function Test2;
End Class;

См.также:

Классы