Covariance and Contravariance (computer science): Type System, Programming Language, Subtype Polymorphism, Category Theory, Covariance and Contravariance of Vectors, Class Hierarchy, Object- oriented Programming, Liskov Substitution
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online.These terms come from category theory, which has a general definition of covariance and contravariance that unifies the computer science definition of these terms with the definition used in vector spaces. This distinction is important in considering argument and return types of met ...Full description
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online.These terms come from category theory, which has a general definition of covariance and contravariance that unifies the computer science definition of these terms with the definition used in vector spaces. This distinction is important in considering argument and return types of methods in class hierarchies. In object-oriented languages such as C++, if class B is a subtype of class A, then all member functions of B must return the same or narrower set of types as A; the return type is said to be covariant. On the other hand, the member functions of B must take the same or broader set of arguments compared with the member functions of A; the argument type is said to be contravariant.