interface I{ void foo(); } abstract class A { abstract int foo(); abstract <T extends A & I> void bar(T x); }