ГОСТ Р МЭК 61131-3—2016
6.6.5.8 Абстрактный класс и абстрактный метод
6.6.5.8.1 Общие положения
Модификатор ABSTRACT может использоваться с классами или отдельными методами. Разра
ботчик определяет реализацию этих свойств в соответствии с таблицей 48.
6.6.5.8.2 Абстрактный класс
Использование модификатора ABSTRACT в объявлении класса указывает, что класс предназна
чается для использования в качестве базового типа для других классов.
Пример — CLASSABSTRACT А1
Абстрактный класс имеет следующие свойства:
- абстрактный класс не может инстанцироваться;
- абстрактный класс содержит, по меньшей мере, один абстрактный метод.
Класс (неабстрактный), порожденный из абстрактного класса включает фактические реализации
всех унаследованных абстрактных методов.
Абстрактный класс может использоваться как тип входных и входных-выходных параметров.
6.6.5.8.3 Абстрактный метод
Все методы абстрактного класса, отмеченные модификатором ABSTRACT, будут реализовы
ваться классами, порожденными из абстрактного класса, если сам порожденный класс не отмечен как
ABSTRACT.
Методы класса, унаследованные из интерфейса, получают ключевое слово ABSTRACT, если они
еще не реализованы.
Ключевое словоABSTRACT не используется в сочетании с ключевым словом OVERRIDE. Ключе
вое слово ABSTRACT может использоваться только с методами абстрактного класса.
Пример — METHOD PUBLICABSTRACTМ1.
6.6.5.9 Спецификаторы доступа (PROTECTED. PUBLIC. PRIVATE. INTERNAL) к методу
Для каждого метода должно быть определено, откуда он может вызываться. Доступность метода
определяется с использованием следующих спецификаторов доступа, следующие за ключевым сло
вом METHOD.
- PROTECTED
Если реализовано наследование, применим спецификатор доступа PROTECTED. Он указывает,
что метод доступен только внутри класса и из всех порожденных классов.
PROTECTED является умолчанием и может быть опущен.
Примечание — Если наследование не поддерживается, спецификатор доступа PROTECTED действует
также. как PRIVATE.
- PUBLIC
Спецификатор доступа PUBLIC указывает, что метод доступен из любого места, где может ис
пользоваться класс.
- PRIVATE
Спецификатор доступа PRIVATE указывает, что метод доступен только внутри самого класса.
INTERNAL
Если пространствоимен реализовано, томожет использоватьсяспецификатордоступа INTERNAL.
Он указывает для методов, что они доступны только в пределах ПРОСТРАНСТВА ИМЕН, в котором
класс объявлен.
Неявнодоступ к прототипам методов всегда общий (PUBLIC), поэтомудля прототипов методов не
используется спецификатор доступа.
Все неправильные использования спецификаторов доступа считаются ошибкой.
Пример — Спецификаторы доступа для методов.
Иллюстрация доступности (вызова) методов, определенных в классе С:
а) спецификаторы доступа: PUBLIC. PRIVATE, INTERNAL. PROTECTED
- PUBLIC
- PRIVATE
- INTERNAL
Метод М1 доступен посредством вызова М1 из класса В (а также класса С);
Метод М2 доступен посредством вызова М2 только из класса С;
Метод М3 доступен посредством вызова М3 из ПРОСТРАНСТВА ИМЕН А (а так
же класса В и класса С);
125