interface Left interface Right class Bottom : Left, Right interface A { fun f(): T? { return null } } interface B : A { override fun f(): T? { return null } } abstract class C : A abstract class D : C() // We should not have intersection override f() in this class class Z : D(), B