// FILE: A.java public abstract class A { protected abstract String doIt(T... args); public String test(S... args) { return doIt(args); } } // FILE: 1.kt open class Super class Sub: Super() val a: A = object : A() { override fun doIt(vararg parameters: Super): String = "OK" } fun box(): String = a.test()