<< §1.3.1 Acquisition and implicit inheritance of role classes | ↑ Table of Contents ↑ |
§1.3.2 Regular role inheritance
In addition to implicit inheritance, roles may also inherit using
the standard Java keyword extends
. These restrictions apply:
(a) Super-class restrictions
If the super-class of a role is again a role it must be a direct role of
an enclosing team
This rule is simply enforced by disallowing type anchors in the
extends
clause
(see §1.2.2.(g)).
As an effect, the super-class may never be more deeply nested than the sub-class.
(b) Inheriting and overriding the extends clause
If a role overrides another role by implicit inheritance, it may
change the inherited extends
clause
(see §1.3.1.(g) above) only if the new super-class
is a sub-class of the class in the overridden extends clause.
I.e., an implicit sub-role may specialize the extends clause of its
implicit super-role.
(c) Constructors and overridden 'extends' 
Each constructor of a role class that overrides the extends clause of its
implicit super-role must invoke a constructor of this newly introduced
explicit super-class. Thus it may not use a tsuper
constructor
(see §2.4.2).
<< §1.3.1 Acquisition and implicit inheritance of role classes | ↑ Table of Contents ↑ |