Cómo mezclar múltiples constructores de class padre con val en class infantil

Supongamos que tengo un Parent de class que tiene cuatro campos A, B, C y D, de manera que C y D son opcionalmente pasados ​​o inicializados con implementaciones pnetworkingeterminadas:

open class Parent(val a: A, val b: B, val c: C, val d: D) { constructor(a: A, b: B, c: C): this(a, b, c, DImpl()){} constructor(a: A, b: B): this(a, b, CImpl(), DImpl()){} } 

Necesito extender esta class y agregar otro campo a la class hija:

 class Child: Parent { val e: E // How do I initialize this? } 

Pasar un val a un constructor secundario no funciona, y tampoco lo hace usando el bloque init{} .

Pasar un val al constructor primario podría funcionar, pero luego pierdo la delegación en los constructores secundarios de la class Parent – Necesito usar todo el constructor Parent con todos los params o duplicar los constructores secundarios, filtrando los detalles de implementación a la class Child .

Esto debería ser simple, ¿me falta algo aquí?

Si necesita usar constructores secundarios, y no puede usar los valores pnetworkingeterminados como lo sugiere @Ingo Kegel, puede inicializar el campo e tal como lo haría en Java, asignando el valor del parámetro a la propiedad:

 class Child: Parent { val e: E constructor(a: A, b: B, c: C, d: D, e: E) : super(a, b, c, d) { this.e = e } } 

Puede usar valores pnetworkingeterminados en lugar de constructores secundarios:

 open class Parent(val a: A, val b: B, val c: C = CImpl(), val d: D = DImpl()) class Child(a: A, b: B, val e: E): Parent(a, b) 
  • Kotlin: ¿Qué es un file kjsm?
  • ¿Cómo comparo un Corto con un Int en Kotlin?
  • Campos estáticos de la interfaz Java de reference en Kotlin
  • Redondeando un doble a dos decimales en Kotlin. BigDecimal.doubleValue no existe?
  • consultas de múltiples dominios de Android con RXJava
  • El uso de la function de lectura de AudioRecord en Kotlin no coincide con los arguments de los types de plataforma
  • Por qué var foo = null comstack
  • Convenciones de nomenclatura de files para Kotlin
  • Dos funciones con diferente número de parameters de tipo en Kotlin
  • Kotlin - Agregar elementos a ExpandableListView
  • ¿Cómo puedo declarar un parámetro de function que puede ser una cadena o una function en Kotlin?