Sealed Class (Java 17+) hạn chế những class nào được phép extend nó — khai báo qua permits.
Ví dụ: public sealed class Shape permits Circle, Rectangle, Triangle {}. Mỗi subclass phải là final, sealed, hoặc non-sealed. Lợi ích kết hợp Pattern Matching: compiler biết tất cả subtypes nên có thể kiểm tra exhaustiveness — switch expression không cần default nếu đã xử lý hết.
Ví dụ: switch (shape) { case Circle c -> ...; case Rectangle r -> ...; case Triangle t -> ...; } — compiler báo lỗi nếu bỏ sót một case. Tốt hơn abstract class ở điểm: đóng gói hierarchy chặt hơn, phòng tránh subtype ngoài ý muốn. Ứng dụng: domain model, error type, state machine.