So my real question is why CAN we add or delete from the collection if the generic delcaration is "? super"
example: ? super someclass
Basically, you don't know what type the collection takes, but it is one of the super classes of someclass.
Inheritance says that a subclass IS-A super class type, and of all class types up the inheritance tree. So, a someclass IS-A someclass, and IS-A all the classes which are super class of someclass.
So... if you add or delete someclass (or one of the subclass of someclass), you guarantee that the class is the type of the collection, even though you don't know what type it is.
Henry