Вы говорите о том факте, что дженерики инвариантны в Java.

кто-нибудь объяснить мне, почему

@Override
public void fooMethod(Class<?> c)

не переопределяет

public void fooMethod(Class c)

и дает мне следующие ошибки вместо:

 - Name clash: The method fooMethod(Class<?>) 
of type SubClass has the same erasure as fooMethod(Class) of 
type SuperClass but  does not override it

 - The method fooMethod(Class<?>) of type 
SubClass must override a superclass method

?

Редактировать: "java -version"говорит Java (TM) 2 Runtime Environment, Standard Edition (сборка 1.5.0_16-b06-284). Что касается фрагмента кода, он уже выше, в значительной степени; вышеизложенный расширяет следующий.

Ответы на вопрос(2)

Ваш ответ на вопрос