Maison > Java > javaDidacticiel > le corps du texte

Covariance, invariance et contravariance : comment les relations de sous-types se transforment-elles ?

DDD
Libérer: 2024-11-12 06:07:01
original
657 Les gens l'ont consulté

Covariance, Invariance, and Contravariance: How Do Subtype Relationships Transform?

Comprendre la covariance, l'invariance et la contravariance

Comprendre les subtilités de la covariance, de l'invariance et de la contravariance est crucial pour maîtriser les relations de types en programmation.

Que sont Ils ?

Essentiellement, ces termes décrivent comment la relation entre les types et les sous-types se transforme. Considérons un scénario dans lequel nous avons deux types, A et B, et une fonction de transformation f. Supposons que ≤ désigne la relation de sous-type (avec A ≤ B indiquant que A est un sous-type de B).

  • Covariant : f est covariant si A ≤ B implique f(A) ≤ f(B).
  • Contravariant : f est contravariant si A ≤ B implique f(B) ≤ f(A).
  • Invariant : f est invariant si aucune des conditions ci-dessus n'est remplie.

Exemples en Java

Explorons quelques exemples Java pour les clarifier concepts :