> Java > 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 Simplified의 공분산, 반공분산, 불변성 이해

소개

공분산, 반공분산 , 불변성은 객체 지향 프로그래밍의 기본 개념입니다. 특히 자바에서는요. 이는 유형과 하위 유형 간의 관계가 유형 변환에 의해 어떻게 영향을 받는지 정의합니다.

공분산, 반공변성 및 불변성 정의

유형 변환의 맥락에서 공분산, 반공변성 , 불변성은 하위 유형 관계가 유지되는지 여부를 결정합니다. A 유형을 취하여 이를 f(A) 유형으로 변환하는 유형 변환 f를 고려해 보겠습니다. If:

  • 공변: A ≤ B(A는 B의 하위 유형), f(A) ≤ f(B)인 A 및 B 유형의 경우.
  • 반공변: A ≤ B, f(B) ≤인 A 및 B 유형의 경우 f(A).
  • 불변: 공분산이나 반공분산도 적용되지 않습니다.

Java의 예

합시다. 몇 가지 예를 고려하십시오 Java: