Ответ
Class – обычный класс, может содержать свойства, методы, конструкторы. Нужен для базовой логики и состояния.
class User(val name: String)
Data Class – автоматически генерирует equals(), hashCode(), toString(), copy(). Оптимален для хранения данных.
data class User(val name: String, val age: Int)
Sealed Class – ограниченная иерархия классов, все подклассы известны на этапе компиляции. Используется для безопасного pattern matching (when).
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
}