E:\_Java\Certificacao>java DogTest
Exception in thread "main" java.lang.ClassCastException: Animal cannot be cast to Dog
at DogTest.main(DogTest.java:10)
Você não pode dar um cast de um Animal pra Dog nesse caso, pq vc criou um Animal, e não um Dog.
seria assim…
Animalanimal=newDog();Dogdog=(Dog)animal;
[]'s
ViniGodoy
E é também por isso que dizemos que cast é uma operação insegura. E que deve ser evitado a todo custo. O compilador é incapaz de verificar em tempo de compilação se seu cast está certo ou errado. No seu exemplo, bastante trivial, fica bastante óbvio que o cast está errado. Mas em um exemplo mais complexo, poderia ser difícil de determinar. Veja: