わかりやすい英語で説明された共分散、不変性、反変性
はじめに:
共分散、不変性、反変性は難しい場合がありますが、Java の型変換と関係を理解するためには不可欠です。この記事は、これらの概念を簡略化し、理解を深めるために実際の例を提供することを目的としています。
共分散:
共分散は、サブタイプ関係が保持される型変換について説明します。型 A が型 B のサブタイプである場合、変換 f(A) の結果、f(B) は f(A) のサブタイプになります。
例:
変換 f(List) = List
不変性:
不変性は、サブタイプの関係が型変換の影響を受けない場合に発生します。 A が B のサブタイプである場合、f(A) は f(B) のサブタイプまたはスーパータイプにはなりません。
例:
Java ジェネリックスは不変方式で動作します。 。たとえば、f(ArrayList) = ArrayList。 ArrayList 以来および ArrayList
反変性:
反変性は共分散の逆です。サブタイプの関係は変換中に逆転します。 A が B のサブタイプの場合、f(B) は f(A) のサブタイプになります。
例:
型変換 f(A[]) を考えてみましょう。 = B[]。 Java では、配列は共変です。つまり、A[] が B[] のサブタイプである場合、 f(A[]) = B[] も f(B[]) = B[] のサブタイプになります。
アプリケーション:
Java では共変性、不変性、反変性が重要な役割を果たします:
以上がJava の共変性、不変性、反変性: 違いは何ですか? なぜ気にする必要があるのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。