#### §1.5.(e) Precedence among different supers

If a role inherits the same feature from several super roles (super and tsuper), an implicitly inherited version always overrides any explicitly inherited feature, i.e., a role with the same simple name is closer related than one with a different name.

Also implicit inheritance alone may produce several candidate methods inherited by a role class. This is a result of team-nesting where each level of nesting may add one more tsuper role if outer teams also participate in an inheritance relationship. In this case a role inherited from an implicit super team of the enclosing team is closer related than a role inherited from an explicit super team. If necessary this rule is applied inside out until a nesting level is found where indeed explicit team inheritance is involved.
So when comparing classes by their fully qualified names the longest common suffix will determine the closest relationship. E.g., `SuperOuter.RoleAndTeamSub.InnerRole` is the closest ancestor of `SubOuter.RoleAndTeamSub.InnerRole` because both share the name suffix `RoleAndTeamSub.InnerRole`.

In the above example (Listing 1.5) role `OuterTeam.RoleAndTeamSub.InnerRole` has two direct tsuper roles: `OuterTeam.RoleAndTeam.InnerRole` and `SuperOuter.RoleAndTeamSub.InnerRole`. Without the method `foo` defined in lines 27-30, the enclosing class `OuterTeam.RoleAndTeamSub.InnerRole` would inherit the method `foo` defined in `SuperOuter.RoleAndTeamSub.InnerRole` (line 9), because the common name suffix `RoleAndTeamSub.InnerRole` creates a stronger relationship making that class the closest ancestor.