Skip to main content
Version: 7.0

EXTEND CLASS statement

The EXTEND CLASS statement extends an existing class.

Syntax​

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

Where imageSetting is one of:

IMAGE [imageLiteral]
NOIMAGE

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. The name[StaticObject] property returns this name qualified with the namespace and class — the object's canonical name.

  • 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. The caption of each static object is available through the caption[StaticObject] property.

  • imageSetting

    Icon setting for a static object. One of:

  • 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'
}