ГОСТ Р МЭК 61131-3—2016
Наследование интерфейса, как показано на рисунке 19 а) является первым из трех уровней на-
следование/реализация. На основе базового интерфейса можно породить один или более интерфей
сов.
Интерфейс может быть порожден из одного или более существующих интерфейсов (базовых ин
терфейсов). используя ключевое слово EXTENDS.
Пример — ИнтерфейсА1 расширяет интерфейсА.
Применяются следующие правила:
1 Порожденный (дочерний) интерфейс наследует без дополнительных объявлений все прототипы
методов из его базового (родительского) интерфейса.
2 Порожденный интерфейс может наследовать из произвольного числа базовых интерфейсов.
3 Порожденный интерфейс может расширять множество прототипов методов, то есть он может
иметь прототипы метода дополнительные к прототипам метода своего базового интерфейса и. таким
образом, создавать новую функциональность.
4 Интерфейс, используемый как базовый интерфейс, может сам являться порожденным интер
фейсом. Когда он передается своим порожденным интерфейсам, наследуются также прототипы мето
да.
Данный процесс может повторяться многократно.
5 Если базовый интерфейс изменяет свое определение, все порожденные интерфейсы (и их по
томки) также имеют эту измененную функциональность.
6.6.6.6.2 Ошибка
Следующие ситуации будут рассматриваться как ошибка:
1
) интерфейс определяет дополнительный прототип метода (в соответствии с правилом 3) с таким
же именем прототипа метода, как и один из его базовых интерфейсов:
2
) интерфейс является своим собственным базовым интерфейсом, явно или неявно, то есть ре
курсия не разрешена.
Пример — Свойство OVERRIDE, как определено в 6.6.5.5для классов, не применимо для интерфей
сов.
6.6.67 Попытка присваивания
6.6.67.1 Общие положения
Попытка присваивания используется для проверки того, реализует ли экземпляр данный интер
фейс (см. таблицу 52). Это применимо для классов и функциональных блоков.
Если экземпляр, на который дана ссылка, принадлежит классу или типу функционального блока,
реализующего интерфейс, то результат является действительной ссылкой на данный экземпляр. В про
тивном случав, результатом является NULL.
Синтаксис попытки присваивания может также использоваться для безопасных преобразований
ссылок интерфейсов в ссылки на классы (или типов функциональных блоков), или ссылки на базовый
тип в ссылку на порожденный тип (нисходящее преобразование типа).
Результат попытки присваивания подтверждается отличием от значения NULL перед использова
нием.
6.6.6.67.2 Текстовое представление
В перечне инструкций (язык IL). оператор «ST» (Сохранить) используется как показано в следую
щем примере.
Пример 1
LDinterface2II в языке IL
ST? interface1
В структурированном тексте (язык ST). оператор «?=» используется как показано в следующем
примере.
Пример 2
interfacel ?- interface2;Ив языке ST
6.6.6.67.3 Графическое представление
В графических языках используется следующая конструкция:
133