
При наследовании одного дженерика другим типы их параметров должны либо совпадать, либо для родительского класса должен быть указан конкретный тип.
class A<T> {}
class M<K, V> {}
class B<T> extends A<T> {}
class C<X> extends A<Number> {}
class L<K, V> extends M<K, V> {}
Для дочернего класса можно указать дополнительный тип:
class D<Y, T> extends A<T> {}
Или вообще не указывать тип у родителя:
class E<Z> extends A {}
Следующие варианты записей не скомпилируются:
class F<Z> extends A<T> {}
class G<K> extends M<K, V> {}
class H<Y, T> extends M<K, V> {}