§1.3.1.(i) Dynamic binding of constructors
When creating a role instance using new
not only the
type to instantiate is bound dynamically (cf. §1.3.1.(e)), but also the constructor to
invoke is dynamically bound in accordance to the concrete
type.
Within role constructors all this(..)
and
super(..)
calls are bound statically with respect to explicit inheritance
and dynamically with respect to implicit inheritance. This means the target role name is
determined statically, but using that name the suitable role type is determined
using dynamic binding.
See also §2.5.(a) on using constructors of abstract role classes.