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) 
  • ¿Cómo get una class de param genérica en Kotlin?
  • Diferencia entre "*" y "Cualquiera" en los generics de Kotlin
  • Sintaxis literal de class para classs parametrizadas en Kotlin
  • agregar la distancia de Google Fit (DataPoint fuera de range)
  • kotlin trabaja con Recursos (matriz y parámetro de function)
  • Propiedades sintéticas de Kotlin
  • Cómo comstackr el código de testing de unidad de Kotlin que usa hamcrest 'is'
  • ¿Cuál es el tipo de setContentView ()
  • Utilice el grupo en RestricciónDeLiminación para escuchar los events de clics en varias vistas
  • Obtener reference de class de la function de nivel superior en kotlin
  • Error de desencryption de Phpseclib al descifrar el contenido encriptado en Java