interface A { fun foo(value : String) : Int = 0 fun bar() : String = "hello" } class C : A { override fun bar(): String { return super.bar() } override fun equals(other: Any?): Boolean { return super.equals(other) } override fun foo(value: String): Int { return super.foo(value) } override fun hashCode(): Int { return super.hashCode() } override fun toString(): String { return super.toString() } }