Substituindo método com tipo de retorno genérico

Digamos que eu tenho uma superclasse que define o seguinte método abstrato

public abstract <T extends Interface> Class<T> getMainClass();

Agora, se eu quiser substituí-lo em alguma subclasse

public Class<Implementation> getMainClass(){
    return Implementation.class;
}

Recebo um aviso sobre segurança de tipo e conversão desmarcada:

Segurança do tipo: o tipo de retornoClass<Implementation> paragetMainClass() do tipoSubFoo precisa de conversão desmarcada para estar em conformidade comClass<Interface> do tipoSuperFoo

NãoClass<Implementation> cair debaixoClass<T> E se<T extends Interface>? Existe alguma maneira de se livrar adequadamente do aviso?

questionAnswers(4)

yourAnswerToTheQuestion