A class declaration specifies a new named reference type.
There are two kinds of class declarations: normal class declarations and enum declarations.
ClassDeclaration: NormalClassDeclaration EnumDeclarationNormalClassDeclaration: ClassModifiersopt
class Identifier TypeParametersopt Superopt Interfacesopt ClassBody
The rules in this section apply to all class declarations unless this specification explicitly states otherwise. In many cases, special restrictions apply to enum declarations (§8.9).
The Identifier in a class declaration specifies the name of the class.
It is a compile-time error if a class has the same simple name as any of its enclosing classes or interfaces. ...