§2.1.2.(d) Base imports

If the main type in a file denotes a team, the modifier base can be applied to an import in order to specify that this type should be imported for application as a base type only. Example:

1
import base some.pack.MyBase;
2
public team class MyTeam {
3
  // simple name resolves to imported class:
4
  protected class MyRole playedBy MyBase { } 
5
  MyBase illegalDeclaration; // base import does not apply for this position
6
}

Types imported by a base import can only be used in the same positions where also base class decapsulation (§2.1.2.(c)) is applicable.
It is recommended that a type mentioned after the keyword playedBy is always imported with the base modifier, otherwise the compiler will give a warning.
Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash with normally visible names (in contrast to §1.4). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.