class Medication(
name: String,
dose: JsonElement?,
schedule: JsonElement?,
isAsNeeded: Boolean,
notes: String?,
id: String,
val other: String?,
) : Topic, Prescription(
name,
dose,
schedule,
isAsNeeded,
notes
)
попробуйте выше ... в классе Medication
нет необходимости переопределять переменную.
Поскольку имя, доза, график, isAsNeeded, примечания уже объявленыв суперклассе нет необходимости переопределять, вы можете использовать их напрямую.
open class Prescription(
protected var name: String,
protected val id: String,
protected var dose: JsonElement?,
protected var schedule: JsonElement?,
protected var notes: String?,
@SerializedName("as_needed")
protected var isAsNeeded: Boolean,
protected var archiveDate: Long?) {
constructor(name: String, dose: JsonElement?, schedule: JsonElement?, isAsNeeded: Boolean, notes: String?)
: this(
id = name.toLowerCase() + "-" + UUID.randomUUID().toString().subSequence(0, 6),
name = name,
dose = dose,
schedule = schedule,
isAsNeeded = isAsNeeded,
archiveDate = null,
notes = notes
)
}
И я считаю, что защита вашего var / val в вашем суперклассе более предпочтительна.