abstract class TestOut { abstract fun test(): T abstract inner class InnerTest { abstract fun innerTest(test: T) } } abstract class TestIn { abstract fun test(test: T) abstract inner class InnerTest { abstract fun innerTest(): T } }