Language Intermedio

Restringe qué clases pueden extender un tipo — habilitando switches exhaustivos.

✕ Java 8
// Anyone can extend Shape
public abstract class Shape { }
public class Circle extends Shape { }
public class Rect extends Shape { }
// unknown subclasses possible
✓ Java 17+
public sealed interface Shape
    permits Circle, Rect {}
public record Circle(double r)
    implements Shape {}
public record Rect(double w, double h)
    implements Shape {}
¿Ves un problema con este código? Cuéntanos.
🔐

Jerarquía controlada

Solo los subtipos permitidos pueden extender — sin subclases sorpresa.

Coincidencia exhaustiva

El compilador verifica que el switch cubre todos los casos, sin necesidad de default.

📐

Tipos de datos algebraicos

Modela tipos suma de forma natural — sealed + records = ADTs en Java.

Enfoque Antiguo
Jerarquía abierta
Enfoque Moderno
sealed permits
Desde JDK
17
Dificultad
Intermedio
Clases sealed para jerarquías de tipos
Disponible

Ampliamente disponible desde JDK 17 LTS (sept. 2021)

Las clases sealed definen un conjunto cerrado de subtipos. El compilador conoce todos los casos posibles, lo que permite pattern matching exhaustivo sin una rama default. Combinadas con records, modelan tipos de datos algebraicos.

Compartir 𝕏 🦋 in