This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Wildcards aren't needed to allow a Cat or a Dog to be added to a list of Animals. There's something called the Liskov Substitution Principle - anywhere an instance of a class us needed, then an instance of any subclass can be used. Google it and you'll get a lot more explanation.
Wildcards are different, and are a way of getting round the problem Martin mentioned above. The generic tutorial will explain more, but make sure you understand how generics work without wildcards first.