The way to getting around with that is using a List of Animal so you can pass through your method which expects a List of animal.
The point is: you can't deal with
polymorphism the same way to ordinary classes.
Base type (List, ArrayList) can be polymorphic as whatever class in
java. But generic types can't be treated the same way.
If you really need to use something near to polymorphic generic types you will need to use wildcards with <? extends Something> or <? super Something>.
<? extends Something> you can't use add with collections
<? super Something> you can use add with collections
To see more about it take a look at
Generics post from Suresh.
The code bellow is getting around this problem using a list of Animals: