class A<T> { void foo(final T anObject) { } } class B extends A<String> { void foo(final String anObject) {} }