Что такое sealed класс?



Это abstract класс, который имеет ограниченную иерархию наследования. Не объявляется с ключевым словом inner. В качестве наследников могут быть:

– Object который не имеет конструктора;

– Class который может иметь конструктор с параметрами.



Преимущества перед Enum:

– Может иметь несколько экземпляров классов, enum работает подобно Singleton

– Классы наследники могут иметь разные конструкторы с различным количеством аргументов;

– При использовании when, все подклассы, которые не были проверены в конструкции, будут подсвечены IDE.