class A : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class B : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun foo() { } } class C : Java1, KotlinInterface { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun foo() { } } interface KotlinInterface { abstract fun foo() } fun test(a: A, b: B, c: C) { a.foo() b.foo() c.foo() }