import org.jetbrains.annotations.NotNull; interface J extends T { @Override int foofoofoo(@NotNull U a, B b); } abstract class J1 implements J> { @Override public int foofoofoo(@NotNull U> xu, C c) { throw new UnsupportedOperationException(); } } abstract class J2 extends J1 { @Override public int foofoofoo(@NotNull U> xu, C c) { throw new UnsupportedOperationException(); } }