Maison > Java > javaDidacticiel > Que sont la covariance, la contravariance et l'invariance en Java, et comment affectent-elles les transformations de type ?

Que sont la covariance, la contravariance et l'invariance en Java, et comment affectent-elles les transformations de type ?

Patricia Arquette
Libérer: 2024-11-09 15:04:02
original
688 Les gens l'ont consulté

What are Covariance, Contravariance, and Invariance in Java, and How Do They Affect Type Transformations?

Comprendre la covariance, la contravariance et l'invariance en Java simplifié

Introduction

Covariance, contravariance , et l'invariance sont des concepts fondamentaux de la programmation orientée objet, notamment en Java. Ils définissent comment la relation entre les types et les sous-types est affectée par les transformations de type.

Covariance, contravariance et invariance définies

Dans le contexte des transformations de type, covariance, contravariance et l'invariance déterminent si la relation de sous-type est préservée. Considérons une transformation de type f qui prend un type A et le transforme en un type f(A). Si :

  • Covariant : Pour les types A et B tels que A ≤ B (A est un sous-type de B), f(A) ≤ f(B).
  • Contravariant :Pour les types A et B tels que A ≤ B, f(B) ≤ f(A).
  • Invariant : Ni covariance ni la contravariance s'applique.

Exemples en Java

Considérons quelques exemples en Java :