Mais Um Código Errado de Livro[Resolvido]

class Animal1{
	final void fazerBarulho(){
		System.out.print("Barulho Generico ");
	}
}
class Cachorro1 extends Animal1{
	void fazerBarulho(){
		System.out.println("Au...au...au");
	}
}
public class Teste5 {
	public static void main(String[] args) {
		Animal1 [] a = {new Animal1(),new Cachorro1(), new Animal1()};
		for (Animal1 bicho : a)
			bicho.fazerBarulho();
	}

}

Boa noite a todos os amigos do fórum, bem, no livro diz que será exibido na saída “Barulho Generico Au…au…au Barulho Generico”. Pois bem, esta resposta não está incorreta devido ao fato de o método fazerBarulho da class Animal1 ter o modificador final? Agradeço desde já a todos.

Sim, está errado. Pois não é possível sobrescrever um método final. Se o modificador final for retirado, será exibido:

“Barulho Generico Au…au…au
Barulho Generico”

em qual livro está isso ?

Acho que o pior livro de certificação é este: Certificação Java 5: Guia Preparatório Exame CX-310-05
tem muitos erros e respostas erradas.