<< §4.5 Lifting and lowering | ↑ Table of Contents ↑ | §4.7 Callin binding with static methods >> |
§4.6 Overriding access restrictions
Callin bindings may also mention inaccessible methods
(cf. decapsulation §3.4).
Due to the reverse call direction this is relevant only for base calls within
callin
methods.
Base calls have unrestricted access to protected base methods.
Accessing a base method with private or default visibility is
also allowed, but signaled by a compiler warning.
Comment:
A base call to an inaccessible base method is considered harmless, since this is the originally intended method execution.(a) Private methods from super classes
(Cf. §3.4.(d))
If a callin binding shall bind to a private base method, that method
must be defined in the exact base class to which the current role
class is bound using playedBy
.
If a private base feature must indeed be callin-bound, a role class
must be defined that is played by the exact base class defining the
private feature. Another role bound to a sub-base-class can then
be defined as a sub class of the first role. It will inherit the
callin binding and through this it can access the desired feature.
<< §4.5 Lifting and lowering | ↑ Table of Contents ↑ | §4.7 Callin binding with static methods >> |