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) 
  • Guardar / restaurar el estado de NestedScrollView con múltiples RecyclerViews y otras vistas
  • Parse 2D Array en Kotlin
  • Soporte de Base64 para diferentes niveles de API
  • Cómo depurar el error "No se pudo resolver com.google.android:android" en Anko
  • ¿Es posible usar doReturn () y CALLS_REAL_METHODS con mockito-kotlin?
  • reference no resuelta: lanzamiento
  • Error con java8 y Kotlin
  • Cómo pasar los arguments del comstackdor a Kotlin Compiler con Gradle
  • Animación del elemento del chat de Facebook Messenger onclick
  • Sirve favicon.ico y otros files estáticos con VertX
  • TornadoFX: Type-Safe CSS con otras bibliotecas