Genéricos Java - por que "estende T" é permitido, mas não "implementa T"?

Gostaria de saber se existe uma razão especial em Java para usar sempre " extends" em vez de " implements" para definir limites de parâmetros de tipo. Exemplo: public interface C {} public class A<B implements C>{} é proibido, mas public class A<B extends C>{} está correto....