Заполнение членов базового класса с использованием констант в Kotlin - PullRequest
0 голосов
/ 27 сентября 2019

Если я создаю подкласс, как я могу использовать константы для заполнения членов базового класса без прохождения через конструктор.Когда создается экземпляр B, вызывающей стороне никогда не нужно знать используемый идентификатор, это может быть частью определения класса B.Вот что я сейчас делаю без намерения фактически передавать идентификатор при создании экземпляра класса B.

abstract class A (_id: Int) {
  val id = _id
}

class B (id: Int = 99, otherParam: String): A(id) {
  val otherParam = _otherParam
}

1 Ответ

1 голос
/ 27 сентября 2019

Тогда вы можете просто использовать константы:

class B (_otherParam: String): A(99) {
    val otherParam = _otherParam
}

Кроме того, ваш A может быть простым:

abstract class A (val id: Int) 

Вам не нужны аргументы конструктора.

То же самое верно для B:

class B (otherParam: String): A(99) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...