ホームページ > Java > &#&チュートリアル > Java の共分散、反変性、不変性とは何ですか?また、それらは型変換にどのような影響を与えますか?

Java の共分散、反変性、不変性とは何ですか?また、それらは型変換にどのような影響を与えますか?

Patricia Arquette
リリース: 2024-11-09 15:04:02
オリジナル
688 人が閲覧しました

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

簡略化された Java の共分散、反変性、および不変性を理解する

はじめに

共分散、反変性、および不変性は、特にオブジェクト指向プログラミングにおける基本的な概念です。 Javaでは。これらは、型とサブタイプ間の関係が型変換によってどのような影響を受けるかを定義します。

共分散、反変性、および不変性の定義

型変換、共分散、反変性のコンテキストでは、および不変性によって、サブタイプの関係が保存されるかどうかが決まります。型 A を受け取り、それを型 f(A) に変換する型変換 f を考えてみましょう。 If:

  • 共変: A ≤ B (A は B のサブタイプ) であるような型 A および B の場合、f(A) ≤ f(B)。
  • 反変: A ≤ B である型 A および B の場合、 f(B) ≤ f(A).
  • 不変: 共分散も反分散も適用されません。

Java での例

いくつかの例を考えてみましょうJava: