Ok se non puoi usare Iterator.
Iterator però non centra nulla di per sé con il fatto che sia usato (o implemento) in una classe astratta o no.
Innanzitutto hai scambiato l'ordine: prima devi stampare, poi prendere il successivo. Altrimenti ti "perdi" il primo utente.
Inoltre il println sta stampando l'oggetto Nodo ... non l'Utente. Io infatti nell'altro messaggio ho scritto:
codice:// usa 'user' di nodoCorrente