☕ Java
Advanced
What are sealed classes in Java?
Answer
Sealed classes and interfaces (Java 17) restrict which other classes can extend or implement them. public sealed class Shape permits Circle, Rectangle, Triangle { } — only the explicitly listed classes are allowed to be subclasses. Each permitted subclass must be declared final, sealed itself, or non-sealed (re-opens the hierarchy). Sealed classes enable exhaustive pattern matching in switch expressions — the compiler can verify all subtypes are handled without a default case. This brings algebraic data type (sum type) modeling to Java, similar to Kotlin sealed classes. They are particularly useful for modeling domain states, results, and discriminated unions.