¿Qué es el polimorfismo paramétrico en Java (con ejemplo)?

Tengo entendido que el polimorfismo paramétrico es una técnica que permite acciones uniformes sobre una variedad de datos (tipos). ¿Mi conocimiento es correcto?

¿Es este ejemplo el polimorfismo paramétrico? Creo que es así porque Animal.talk permite que se llame a la conversación a pesar del tipo de animal específico (Gato o Perro).

<code>public interface Animal
{
  public String talk();
}

public class Cat implements Animal
{
  public String talk()
  {
    return "Cat says Meow!";
  }
}

public class Dog implements Animal
{
  public String talk()
  {
    return "Dog says Woof! Woof!";
  }
}

import java.util.*;

public class PolymorphismExample
{
  public static void main(String[] args)
  {
    Collection<Animal> animals = new ArrayList<Animal>();
    animals.add(new Cat());
    animals.add(new Dog());
    for (Animal a : animals)
    {
      System.out.println(a.talk());
    }
  }
}
</code>

Saludos.

edición: si mi ejemplo no muestra específicamente un polimorfismo paramétrico, ¿podría proporcionar uno? gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta