Generics make your code more flexible and easier to read, and they help you avoid ClassCastExceptions at runtime. Get started with this introduction to using generics with the Java Collections ...
So the Interfaces / Multiple Inheritance thread prompted me to post this, and I wanted to see what other arsians thought of this "theory". Note that the below applies directly to java, but I'd guess ...