package pck; interface I {} interface A extends I>{} interface B extends I>{} abstract class X { abstract T foo(T x, T y); void bar(A x, B y){ foo(x, y); foo(y, y); } }