- 제네릭은 클래스나 함수에서 사용할 타입을 외부에서 지정하는 것을 의미합니다. 🗂️
- 동물원 라이브러리 예시를 통해 제네릭을 사용하면 코드 중복을 줄이고 유지보수성을 향상시킬 수 있습니다. 🦁
- 변성은 기저 타입이 같고 타입 파라미터가 다를 때, 이들 간의 계층 관계를 정의하는 개념입니다. 🧬
- 공변성은 B가 A의 서브타입일 때,
클래스<B>
가클래스<A>
의 서브타입이 되는 관계입니다. 🐕 - 반공변성은 B가 A의 서브타입일 때,
클래스<A>
가클래스<B>
의 서브타입이 되는 관계입니다. 🐈⬛ out
변경자는 공변성을 나타내며, 타입 파라미터가 반환 값으로만 사용될 때 사용합니다. 📤in
변경자는 반공변성을 나타내며, 타입 파라미터가 입력 값으로만 사용될 때 사용합니다. 📥