Ответ
В Kotlin есть несколько видов классов:
- Обычные классы – базовые классы.
class MyClass { ... }
- Data-классы – автоматически генерируют
equals(),hashCode(),toString(),copy().
data class User(val name: String, val age: Int)
- Sealed-классы – ограниченная иерархия (все подклассы известны).
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
}
- Enum-классы – фиксированный набор значений.
enum class Direction { NORTH, SOUTH, EAST, WEST }
- Абстрактные классы – нельзя создать экземпляр, могут содержать абстрактные методы.
abstract class Animal {
abstract fun makeSound()
}
- Inner-классы – имеют доступ к членам внешнего класса.
class Outer {
inner class Inner { ... }
}
- Object-классы (Singleton) – единственный экземпляр.
object Singleton { ... }
- Companion-объекты – статические методы/поля.
class MyClass {
companion object { ... }
}
- Inline-классы – обёртки для оптимизации (с Kotlin 1.5).
inline class Password(val value: String)