Mah ... il codice è comunque sbagliato, almeno per come l'hai postato qui.
Se Carnivoro è definito come:
public class Carnivoro implements Animale<Erbivoro>
allora NON puoi fare new Carnivoro<Erbivoro>()
Il punto è che per poter fare una istanziazione del tipo Carnivoro<UnTipoReale> la classe Carnivoro dovrebbe avere una type variable e .... non ce l'ha.
Idem per Erba.