Why it matters

Sealed types enable safer inheritance modeling. Understanding enables algebraic data types in Java.

Advertisement

The architecture

Sealed: 'sealed class/interface X permits A, B, C'.

Permitted subclasses: must be final, sealed, or non-sealed.

Sealed hierarchySealed parentpermits listPermitted childrenfinal / sealed / non-sealedExhaustive matchingat compile timeEnables ADT-style modeling similar to Scala sealed traits or Rust enums
Sealed structure.
Advertisement

How it works end to end

Pattern matching switch: 'switch (shape) { case Circle c -> ...; case Square s -> ... }'. Compiler enforces coverage.

Combine with records for full ADT: sealed interface + record subtypes.

Contrast with Enum: sealed for classes; enum for constants.