Skip to main content
Version: 6.x

EXTEND CLASS statement

The EXTEND CLASS statement extends an existing class.

Syntax​

EXTEND CLASS name 
[{
objectName1 [objectCaption1] [imageSetting1],
...
objectNameM [objectCaptionM] [imageSettingM]
}]
[: parent1, ..., parentN];

Description​

The EXTEND CLASS statement extends an existing custom class with additional parent classes and new static objects. You can also extend abstract classes by adding parent classes to them.

Parameters​

  • name

    Class name. A composite ID.

  • objectName1, ..., objectNameM

    Names of new static objects of the specified class. Each name is defined by a simple ID. Name values are stored in the System.staticName system property.

  • objectCaption1, ..., objectCaptionM

    Captions of new static objects of the specified class. Each caption is a string literal. If the caption is not defined, the name of the static object will be its caption. Caption values are stored in the System.staticCaption system property.

  • imageSetting1, ..., imageSettingM

    Icon settings for the captions of new static objects of this class. The HTML class value used to display the icon is stored in the system property System.image[StaticObject]. This option allows you to configure the icon manually. It can have one of the following forms:

    • IMAGE [imageLiteral]

      Manual icon specification for the static object's caption. If imageLiteral is not provided, the automatic assignment mode is enabled.

      • imageLiteral

        String literal whose value defines the icon.

    • NOIMAGE

      Keyword indicating that the static object's caption should have no icon.

  • parent1, ..., parentN

    A list of names of new parent classes. Each name is defined by a composite ID.

Examples​

CLASS ABSTRACT Shape;
CLASS Box : Shape;

CLASS Quadrilateral;
EXTEND CLASS Box : Quadrilateral; // Adding inheritance

CLASS ShapeType {
point 'Dot',
segment 'Line segment'
}

EXTEND CLASS ShapeType { // Adding a static object
circle 'Circle'
}