package test interface A { fun foo(): T } interface B : A abstract class C : B open class D : C() { override fun foo(): Int = 42 }