It's the same reason you can't do this:

List<Number> list = new ArrayList<Integer>();

Recommended reading: Subtyping (The Java™ Tutorials > Learning the Java Language > Generics)