Sobes.tech
Назад к вопросам
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()
}

Таким образом:

  • Обычный класс — универсальный.
  • Дата-класс — для удобного хранения и работы с данными.
  • Запечатанный класс — для ограниченной иерархии и безопасного паттерн-матчинга.