class C<T>{} class A<S,T> {} class B> extends A { void foo(B x){ bar(x); } void bar(A x){ System.out.println(x); } }