ホームページ > Java > &#&チュートリアル > 共分散、不変、および反変: サブタイプの関係はどのように変化するか?

共分散、不変、および反変: サブタイプの関係はどのように変化するか?

DDD
リリース: 2024-11-12 06:07:01
オリジナル
661 人が閲覧しました

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

共分散、不変、反変を理解する

共分散、不変、反変の複雑さを理解することは、プログラミングで型の関係を習得するために重要です。

とは

本質的に、これらの用語は、タイプとサブタイプの間の関係がどのように変化するかを説明します。 A と B の 2 つのタイプと変換関数 f があるシナリオを考えてみましょう。 ≤ がサブタイプ関係を表すとします (A ≤ B は A が B のサブタイプであることを示します)。

  • 共変: A ≤ B が f(A) を意味する場合、f は共変です。 ≤ f(B).
  • 反変: A ≤ B が f(B) ≤ f(A) を意味する場合、f は反変です。
  • 不変: 上記の条件のいずれでもない場合、f は不変です

Java の例

これらの概念を明確にするために、Java の例をいくつか見てみましょう。