Назад к вопросам
Junior — Middle
64
Какие отличия существуют между обычным классом, дата-классом и запечатанным классом в языке программирования Kotlin?
Ответ от нейросети
sobes.tech AI
В Kotlin существуют разные типы классов, которые имеют свои особенности:
-
Обычный класс (class) — стандартный класс, который можно наследовать (если не объявлен как final), содержит свойства и методы. Не генерирует автоматически методы
equals(),hashCode(),toString(). -
Дата-класс (data class) — класс, предназначенный для хранения данных. Компилятор автоматически генерирует для него методы
equals(),hashCode(),toString(), а такжеcopy()и функции для деструктуризации. Пример:
data class User(val name: String, val age: Int)
- Запечатанный класс (sealed class) — класс, который ограничивает иерархию наследования. Все подклассы должны быть объявлены в том же файле. Используется для представления ограниченного набора типов, часто в
whenвыражениях для обеспечения полноты проверки. Пример:
sealed class Result {
data class Success(val data: String) : Result()
object Error : Result()
}
Таким образом:
- Обычный класс — универсальный.
- Дата-класс — для удобного хранения и работы с данными.
- Запечатанный класс — для ограниченной иерархии и безопасного паттерн-матчинга.