We are hiring and constantly growing! Have a look through our vacancies to find the right role for you!
In the declaration of an interface, the statement INTERFACES includes the interface intf in the declared interface. Additions cannot be specified. As a result, the interface intf becomes a component interface of a composite interface.
An interface can be composed of any number of different component interfaces. All component interfaces are equal and on one level. If a component interface itself is a composite, that is, it contains its own component interfaces, the nesting hierarchy is irrelevant for the composition of the interface. It is relevant, however, for accessing the interface components.
To access the component comp of a component interface intf within a composite interface,
the expression intf~comp can be used with the interface component selector (~). It is not possible to use the interface component selector multiple times in a name
(intf1~intf2~comp). In a composite interface, it is possible to use the interface component selector
to access only those interface components of the component interface that are included in this interface
using the statement INTERFACES. Since all nested interfaces are at the same level, however, this
is sufficient to access the interface components of all component interfaces using the name of their interface.
The following example shows how the statement INTERFACES can be used to compose and implement
interfaces. Class c1 implements the composite interfaces i2 and i3. Although i1
is a component interface of i2 and i3, it exists only once in class c1. A reference
variable iref1 of the static type i1 creates an object class c1 and calls the method i1~m1, which is implemented there.