Можно ли создать много конструкторов в Kotlin

«Можно ли создать много конструкторов в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в Kotlin можно создавать несколько конструкторов, но с некоторыми ограничениями.

  1. Primary конструктор – объявляется в заголовке класса:
class User(val name: String, val age: Int)
  1. 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 для генерации перегруженных конструкторов.