super is a lower bound, and extends is an upper bound.
According to http://download.oracle.com/javase/tutorial/extra/generics/morefun.html :
The solution is to use a form of
bounded wildcard we haven't seen yet:
wildcards with a lower bound. The
syntax ? super T denotes an unknown
type that is a supertype of T (or T
itself; remember that the supertype
relation is reflexive). It is the dual
of the bounded wildcards we've been
using, where we use ? extends T to
denote an unknown type that is a
subtype of T.