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