if (o instanceof Cat)
           return "Кот";
       else if (o instanceof Tiger)
           return "Тигр";
       else if (o instanceof Lion)
           return "Лев";
Рез-тат: везде кот. Как я понял, instanceof возвращает true для наследников. Вопрос: почему в случае o instanceof Cat - Кот, хотя кот наследуется от Animals?