A category is actually a data build which can incorporate research members (constants and sphere), means users (methods, services, incidents, indexers, workers, such as for instance constructors, finalizers, and you can static constructors), and you will nested models.
14.dos.step 1 Standard
A category_statement include an optional band of services (§21), accompanied by an optional selection of category_modifiers (§14.dos.2), followed by an optional partial modifier (§fourteen.dos.7), followed closely by the newest keywords class and you may a keen identifier one to labels the group, followed closely by an elective type of_parameter_listing (§14.2.3), followed by an optional category_ft specs (§14.2.4), with an elective selection of type_parameter_constraints_clauses (§14.2.5), followed closely by a course_looks (§fourteen.dos.6), optionally followed closely by an excellent semicolon.
A category eter_record was a general class report. While doing so, any group nested inside a common category report or a generic struct statement is actually itself an universal class declaration, given that variety of arguments towards with type of will be provided to carry out a created kind of.
14.dos.2.step one General
The brand new modifier is let towards nested categories. They specifies that group hides an inherited user by same identity, as discussed when you look at the §fourteen.step 3.5. It is a harvest-date mistake to your the fresh modifier to seem on the a category report that is not a nested classification statement.
People , safe , interior , and private modifiers manage the new the means to access of the classification. Depending on the framework in which the class declaration happen, these modifiers is almost certainly not permitted (§eight.5.2).
When a partial type report (§14.dos.7) is sold with an accessibility requirements (through the social , protected , internal , and personal modifiers), one to specification should go along with other parts that include a keen usage of specification. In the event that no part of a limited style of boasts an access specification, the type is provided the right standard accessibility (§eight.5.2).
fourteen.2.dos.dos Conceptual groups
The latest abstract modifier is utilized to indicate that a category is actually unfinished and this will probably be used just just like the a bottom group. An abstract category differs from a non-conceptual classification on after the suggests:
- A conceptual group can’t be instantiated directly, and is a collect-day error to make use of the new driver towards a conceptual group. While it is possible getting variables and you will opinions whose accumulate-big date sizes was conceptual, particularly variables and you can thinking commonly fundamentally either be null otherwise incorporate references to cases of low-conceptual groups produced by this new conceptual versions.
- An abstract class is enabled (although not necessary) so you can have abstract people.
- An abstract group can not be close.
When a non-conceptual class is derived from an abstract group, the newest non-conceptual category should were real implementations of all of the handed down abstract members, and thus overriding those abstract people.
the fresh conceptual classification Good raises an abstract means F . Class B introduces an extra means Grams , however, since it doesn’t provide an utilization of F , B will even be stated abstract. Classification C overrides F and provides a real implementation. Because there are no conceptual users into the C , C was allowed http://datingranking.net/pl/muslima-recenzja (although not requisite) to be non-conceptual. end example
If a person or even more components of a limited method of report (§14.2.7) out-of a class through the abstract modifier, the category are abstract. If not, the course was non-abstract.
fourteen.dos.2.step 3 Shut groups
The latest close modifier is utilized to avoid derivation out of a course. An accumulate-big date mistake happen in the event the a sealed group are given since the feet class of some other classification.
Note: The newest closed modifier is primarily always stop unintended derivation, but it addittionally enables certain work on-day optimizations. Particularly, due to the fact a close classification could have-not any derived classes, you can changes digital form affiliate invocations into the sealed category times towards low-virtual invocations. stop note