Clase extendida con muchos parameters

Tengo una class llamada A:

open class A (a: String, b: String, c: String) 

Y una class B que se extiende A:

 class B(a: String, b: String, c: String, d: String) : A(a, b, c) 

Mi pregunta es si hay una manera de hacer algo como esto, para evitar declarar todos los parameters de A dentro del constructor B:

 class B(super, d:String) : A(super) 

Si no, debería haber =)

Puede crear una interfaz común para las classs y luego usar la delegación para acercarse lo que desea. Me gusta esto:

 interface C { val a: String val b: String val c: String } class A(override val a: String, override val b: String, override val c: String) : C class B(c: C, val d: String) : C by c 

Al hacer esto, puedes instanciar una B como esta:

 val b = B(A("1", "2", "3"), "4") 

No , Kotlin no contiene ningún constructo que le permita simplificar los parameters del constructor que coinciden con los parameters de la superclass.

No creo que esté de acuerdo con que esta sea una característica del lenguaje, pero recomendaría comenzar una conversación en YouTrack si cree que debería ser.

Cuando se encuentre con este problema, debe preguntarse por qué dicha class necesita muchos parameters / dependencies en lugar de descubrir la solución por syntax del lenguaje. Tal vez su responsabilidad no está clara.

SI hay muchos conceptos de dominio mezclados en una class, entonces necesita networkingiseñar sus classs de la siguiente manera:

 data class C(val a: String, val b: String, val c: String) open class A(val c:C) class B(c:C, val d: String) : A(c) 

SI encontró que B no es-A A , entonces debe usar composition en lugar de inheritance, por ejemplo:

 open class A (a: String, b: String, c: String) class B(val a:A, val d: String) 

No, no hay tal manera. Desafortunadamente, debes hacer esto manualmente