fun test() { J().foo(3, A(a + b)) K().foo(3, A(a + b)) } abstract class K0 { abstract fun foo(c: Int, a1: A): Int } open class K: K0() { override fun foo(c: Int, a1: A) = a + b + c }