What is a sealed class in Kotlin?
In Kotlin, a sealed class is a special type of class that restricts inheritance to a predefined set of subclasses within the same file. Unlike regular classes, which allow unrestricted subclassing, sealed classes offer a limited hierarchy of subclasses, providing more control over class inheritance and ensuring exhaustive handling in when expressions.
The primary purpose of sealed classes is to represent restricted hierarchies, where a superclass defines a fixed number of possible subclasses, typically used for modeling finite states or representing a closed set of options.
Sealed classes are particularly useful when dealing with data types that have a fixed number of possible variations. By sealing the class, you explicitly specify all the allowed subclasses, thereby enabling exhaustive checks and improving code safety and maintainability.