Resta comunque sbagliata (la prima istanziazione) se la dichiarazione di Carnivoro resta quella detta prima, ovvero:
public class Carnivoro implements Animale<Erbivoro>
No, con la dichiarazione di Carnivoro come sopra, basta semplicemente:
new Carnivoro()
senza alcuna parametrizzazione. Perché Carnivoro è-un Animale<Erbivoro>, è già parametrizzato in questo senso!
P.S. suggerimento: se hai un po' di dimestichezza con l'inglese, se mi permetti, ti suggerisco di leggere il capitolo 8 sui Generics del libro "Learning Java 3rd Edition", che trovi su google books:
http://books.google.it/books?id=fu5H...page&q&f=false
Il capitolo lo puoi leggere praticamente per intero, è solo oscurata l'ultima pagina del capitolo che contiene solamente le "conclusioni". Ti assicuro che è molto utile (e lo è stato per me).![]()