Ответ
Да, в Kotlin можно создавать несколько конструкторов, но с некоторыми ограничениями.
- Primary конструктор – объявляется в заголовке класса:
class User(val name: String, val age: Int)
- Secondary конструкторы – объявляются через
constructor, должны вызывать primary (если он есть) черезthis:
class User(val name: String) {
constructor(name: String, age: Int) : this(name) { /* ... */ }
constructor(id: Int) : this("Default") { /* ... */ }
}
Ограничения:
- Вторичные конструкторы не могут объявлять свойства (
val/var). - Если есть primary, вторичные обязаны его вызывать.
- В Java-совместимом коде можно использовать
@JvmOverloadsдля генерации перегруженных конструкторов.