ГОСТ Р МЭК 61131-3—2016
6.6.5.5 Наследование класса {EXTENDS, SUPER. OVERRIDE, FINAL)
6.6.5.5.1 Общие положения
Применительно к языкам программирования PLC, концепция наследования, определенная в объ
ектно-ориентированном программировании применяется как способ создания новых элементов.
Наследование классов показано на рисунке 17. На базе существующего класса может быть по
рожден один или более классов. Данный процесс может повторяться многократно.
Примечание — «Множественное наследование» не поддерживается.
Порожденный (дочерний) класс обычно расширяет базовый (родительский) класс дополнитель
ными методами.
Термин «базовый» класс означает всех «предков», то есть родительский класс и его родительские
классы и т. д.
Наследование классов с использованием EXTENDS
Рисунок 17— Наследование классов(иллюстрация)
6.6.5.5.2 Ключевое слово EXTENDS для классов
Класс может порождаться из уже существующего класса (базового класса), используя ключевое
слово EXTENDS.
Пример — CLASSХ1 EXTENDSX;
Применяются следующие правила:
1 Порожденный класс без всяких объявлений наследует все классы (если таковые имеются) из
базового класса со следующими исключениями:
- не наследуются методы PRIVATE;
- за пределами пространства имен не наследуются методы INTERNAL.
2 Порожденный класс наследует все переменные (если таковые имеются) из базового класса.
3 Порожденный класс наследует только из базового класса. Множественное наследование в дан
ном стандарте не поддерживается.
Примечание — Класс может реализовывать (используя ключевое слово IMPLEMENTS) один или более
интерфейсов.
4 Порожденный класс может расширять базовый класс, то есть может иметь собственные методы
и переменные в дополнение к унаследованным методам и переменным базового класса, и таким об
разом создавать новую функциональность.
5 Класс, используемый в качестве базового класса, сам может быть порожденным классом. Тогда
он переносит в порожденный класс также методы и переменные, которые он унаследовал.
Это может повторяться несколько раз.
6 Если определение базового класса изменяется, все порожденные классы (и их потомки) также
соответственно изменяют свою функциональность.
119