As used in computer science, in particular in object oriented programming, contravariance means that arguments of overriding methods can take arguments supertypes of the original arguments. This constrasts with the related concepts: covariance (arguments have to be of subtype), and invariance (arguments have to be of exactly the same type).
See also: covariance and contravariance in mathematics and theoretical physics.