Создание класса sealed
означает, что компилятор знает полный список классов реализации во время компиляции. Следовательно, он может подтвердить, что (например) все возможные совпадения были обработаны.
Считайте это похожим на проверенные исключения: во время компиляции компилятор гарантирует, что каждое проверенное исключение, которое может быть создано, каким-то образом обрабатывается (либо путем перехвата или с помощью предложения throws
), поэтому гарантируется, что управление потоком будет формально согласованным.