¿Recuerdas estructuras de datos tales como las listas, las colas o los árboles?
Estas estructuras de datos pueden trabajar con cualquier tipo de datos, podemos tener listas de Persona y también de String o File, la funcionalidad que la lista ofrece es independiente del tipo de datos que maneja.
En POO este comportamiento (independencia del tipo de datos) lo podemos conseguir utilizando genéricos.