Buenos días.
El ejercicio es correcto.
Podrías simplificar un poco la clase main de la siguiente forma:
import java.util.Iterator;
public class MainGrupoDeAvesZoo {
public static void main (String [] args) {
AvesEnZoo aves1 = new AvesEnZoo ("Águilas ", 35, 10, 25);
AvesEnZoo aves2 = new AvesEnZoo ("Buitres", 100, 55, 45);
AvesEnZoo aves3 = new AvesEnZoo ("Halcones", 80, 25, 55);
AvesEnZoo [] avesEnZoo = {aves1, aves2, aves3};
GrupoDeAvesZoo grupoDeAvesZoo = new GrupoDeAvesZoo (avesEnZoo);
System.out.println ("TIPO TOTAL|MACHOS|HEMBRAS");
for (AvesEnZoo p: avesEnZoo){
System.out.println (p.toString());
}
}
}
y el método next() de la clase MiIteradorGrupoDeAvesZoo podría ser:
public AvesEnZoo next() {
posicion++;
return grupoDeAvesZoo[posicion-1];
}
Un saludo