import java.util.*; class Test { public static void foo(T t) {} public void bar(T t) {} static class A extends ArrayList<T> { static void boo(T t){} } class B extends ArrayList { void foo(T r){} } }