Java Generics Concepts: Difference between revisions
Jump to navigation
Jump to search
Line 4: | Line 4: | ||
=Type Inference= | =Type Inference= | ||
{{Internal|Java 7 Type Inference|Java Type Inference}} | {{Internal|Java 7 Type Inference|Java Type Inference}} | ||
=Organizatorium= | |||
==Covariance== | |||
{{External|https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)}} | |||
Let T and S be two types (class or function types), such that S is a subtype of T. If method m of T is overridden in S, then the corresponding types from the m's signature can either preserve the relationship between T and S (the type used in S is a subtype of the corresponding type in T), reverse the relationship (the type used in S is a super type of the type used in T), or neither preserve nor reverse this relationship. If they preserve the relationship to T and S, we say they are covariant, if they reverse the relationship of T and S, we say they are contravariant. |
Revision as of 00:32, 10 September 2021
Internal
Type Inference
Organizatorium
Covariance
Let T and S be two types (class or function types), such that S is a subtype of T. If method m of T is overridden in S, then the corresponding types from the m's signature can either preserve the relationship between T and S (the type used in S is a subtype of the corresponding type in T), reverse the relationship (the type used in S is a super type of the type used in T), or neither preserve nor reverse this relationship. If they preserve the relationship to T and S, we say they are covariant, if they reverse the relationship of T and S, we say they are contravariant.