Kotlin поддерживает перегрузку только некоторых предопределенных операторов.См. Эту документацию здесь .
То, что вы пытаетесь там, невозможно, вы не можете присвоить некоторые B
переменной типа A
, если их иерархия типов не позволяет это, как показано здесь:
open class A
class B : A()
val bb: B = B()
val aa: A = bb