Java Core middle
Sealed Classes (Java 17+)?
Ответ
Ограничение иерархии наследования: sealed class Shape permits Circle, Square. Компилятор гарантирует exhaustive switch. Связка с Pattern Matching for switch (Java 21).
Разбор: sealed разрешает наследование только классам из списка permits (а не запрещает его полностью), при этом каждый наследник обязан быть final, sealed или non-sealed — иначе код не скомпилируется. Замкнутость иерархии позволяет компилятору проверять exhaustive switch и хорошо сочетается с pattern matching (Java 21). Ловушки: sealed ≠ final, permits именно ограничивает круг наследников, а сами наследники должны явно объявить свою «замкнутость».
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.