A class-declaration may optionally include a sequence of class modifiers: class-modifiers : class-modifierclass-modifiersclass-modifierclass-modifier : newpublicprotectedinternalprivateabstractsealed
It is a compile-time error for the same modifier to appear multiple times in a class declaration.
The new modifier is permitted on nested classes. It specifies that the class hides an inherited member by the same name, as described in 10.2.2. It is a compile-time error for the new modifier to appear on a class declaration that is not a nested class declaration.
The public, protected, internal, and private modifiers control the accessibility of the class. Depending on the context in which the class declaration occurs, some of these modifiers may not be permitted (10.5.1).
The abstract and sealed modifiers are discussed in the following sections.