sealed class

Sealing a class is limiting its class hierarchy. When you mark a class as sealed, you can only subclass it from a specified location. This allows you to restrict the subclasses for exhaustive evaluation. It is like an enum on steroids in a sense that enum values are single instances while a derived class of a sealed class can have multiple instances.