Nesta aula, analisamos hierarquias fechadas no Java 17+: como declarar classes e interfaces com o modificador
sealed, especificar subclasses permitidas via
permits, escolher o status das subclasses (
final,
sealed,
non-sealed) e por que isso reforça a exaustividade do
switch com pattern matching sem o ramo
default. Veremos exemplos com modelos de domínio, interação com
interface e
record, além de erros comuns.