Tengo entendido que el polimorfismo paramétrico es una técnica que permite acciones uniformes sobre una variedad de datos (tipos). Es mi conocimiento correcto?¿Qué es el polimorfismo paramétrico en Java (con ejemplo)?
¿Este ejemplo es un polimorfismo paramétrico? Creo que es porque Animal.talk permite que se llame a pesar del tipo de animal específico (gato o perro).
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());
}
}
}
Saludos.
editar: si mi ejemplo no muestra específicamente el polimorfismo paramétrico, ¿podría proporcionar uno? gracias.
Se ve correcto. Básicamente, tratas a Cat y Dog sin tener en cuenta su tipo real basado en el tipo de Animal. – dvallejo
Como un Haskeller, no llamaría a ese polimorfismo paramétrico. Una función paramétrica polimórfica sería algo así como 'LinkedList reverse (LinkedList )' que funciona igual para todos los _parameter_ types 'T'. Una función polimórfica paramétrica no puede llamar a métodos de interfaz. –