Интерфейс может быть производным от нуля или более интерфейсов, которые в этом случае называются родительскими для него. Когда интерфейс имеет один или более родительских они указываются в заголовке его определения после двоеточия.
interface-base:
: interface-type-list
Родительские интерфейсы должны иметь уровень доступа не ниже, чем сам интерфейс.
Является ошибкой компиляции наследование интерфейса от самого себя непосредственно или опосредовано.
Базовыми интерфейсами для данного интерфейса являются его родительские интерфейсы и их базовые. Другими словами множество базовых интерфейсов для данного получается транзитивным замыканием отношения наследования. Интерфейс наследует все члены его базовых интерфейсов.
Класс или структура, реализующие интерфейс, также неявно реализуют все его базовые интерфейсы.
Interface IBaseInterface
Sub Base();
End Interface;
Interface IUserInterface: IBaseInterface
Function UserCaclulation(): boolean;
End Interface;
Class UserObject: IUserInterface
b: boolean;
Public Function UserCaclulation(): boolean;
Begin
//Код функции
Return b;
End Function;
Public Sub Base();
Begin
End Sub;
End Class;
См. также: