Проверять обязательно
Animal x = new Cat("Kit");
Dog d = (Dog) x; // compiles fine, then crashes:
// ClassCastException: class Cat cannot be cast to class Dog
The compiler allows the cast — it cannot know what will be inside at run time. So the pair is inseparable: check with instanceof, then cast.
if (zoo[i] instanceof Dog) {
Dog d = (Dog) zoo[i];
System.out.println(d.fetch());
}