Все три варианта используются для группировки чего-то похожего. Но зачем вообще придумывали столько всего, если есть всем привычный Enum? Посмотрим на каждый вариант. Enum — набор констант, которые обобщены по какому-то признаку. Как выглядит типичный enum: Обратите внимание, что тут все котики одинаковые и у них у всех есть обязательный параметр color. Сделать котика более индивидуальным мы не можем. Основной момент: тут именно константы. Мы не можем отдельно создать новый экземпляр и нового котика. Можем только присвоить значение в виде одной из константы (строчка 2). Из плюсов: мы в любой момент можем получить все значения или проверить, входит ли какой-то котик в наш Enum через valueOf (но тут будет исключение и его надо обработать). Sealed-классы — сначала посмотрите на всех котиков снизу. Они очень разные и у каждого котика свои параметры, но также у них у всех есть параметр color. Тут у нас обычный абстрактный класс, где все дети (Барсик, Персик и Кейма) становятся известны во
Sealed-классы, enum и sealed-интерфейсы. Чем отличаются?
30 июля 202230 июл 2022
284
1 мин