Перейти к основному содержимому
Версия: 4.x

Расширение классов

Техника расширения классов позволяет разработчику донаследовать один класс от другого после его создания. Также при помощи этого механизма можно добавлять в класс дополнительные статические объекты.

Расширение классов вместе с техникой расширения свойств и действий позволяет:

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

Язык

Для того, чтобы расширить класс, используется инструкция EXTEND CLASS.

Примеры

CLASS ABSTRACT Shape;
CLASS Box : Shape;

CLASS Quadrilateral;
EXTEND CLASS Box : Quadrilateral; // Добавляем наследование

CLASS ShapeType {
point 'Точка',
segment 'Отрезок'
}

EXTEND CLASS ShapeType { // Добавляем статический объект
circle 'Окружность'
}