polarHub25 / StudyLog

0 stars 1 forks source link

item31. PECS에서 extends와 super의 차이점에 대해서 #32

Closed polarHub25 closed 3 months ago

donghyeon3813 commented 3 months ago

List를 통해 예시를 들어보겠습니다. List<? extends Number> numbersExtend List<? super Integer> integerSuper

1.numbersExtend의 경우에는 Number를 부모로둔 어떠한 타입의 리스트를 선언할 수 있습니다. 이 경우 Number를 상속한 경우 Number, Integer, Double, Float 등의 데이터가 있습니다. Number를 상속했지만 엄연히 List<Number>List<Integer>는 하위 타입이 아니며 정확한 타입을 알 수 없어 컴파일러가 add 함수의 사용을 못하게 막습니다.

  1. integerSuper의 경우에는 Integer를 하위 타입으로 둔 어떠한 타입의 리스트를 선언할 수 있습니다. 이 경우 Integer, Number, Object등 어떠한 타입이 올지 특정 되기 때문에 컴파일러가 add 함수의 사용을 가능하게 합니다.

코드