abstract class A : J, I { constructor() /* primary */ { super/*J*/() /* () */ } } open class Base { constructor() /* primary */ { super/*Any*/() /* () */ } } class Child : Base { constructor() /* primary */ { super/*Base*/() /* () */ } } abstract class J { constructor() /* primary */ { super/*Any*/() /* () */ } abstract fun foo(): Child } interface I { abstract fun foo(): Base }