java

<? super T> 와 <? extends T>의 차이는 무엇인가?

Chris.Ko 2021. 7. 6. 21:41

super 와 extends는 반대의 의미이다.

<? super T>

- 상속관계에 존재하는 클래스만 자료형으로 받는다는 의미

- T : 자식 클래스로 자식 클래스와 연관이 있는 부모클래스는 전부 적용된다는 의미

<? extends T>

- 상속관계로 이루어진 클래스만 자료형으로 받는다는 의미

- ? : (자식 클래스) / T : (부모 클래스)로 부모 클래스와 자식 클래스의 임의의 자료형만 적용된다는 의미

 

super는 상위 클래스만 extends는 하위 클래스만 적용이 된다는 소리다.

ex) Integer의 상위 클래스는 Number , Number 위에 Object 이다.
super Integer 라고 하면 Integer / Number / Object가 된다는 것이고

ex) Animals 에는 cat / dog / etc .. 이 있다.

extends Animals 라고 하면 cat / dog ... 이 된다는 것이다. 

 

 

 

출처 : https://docs.oracle.com/javase/8/docs/api/

'java' 카테고리의 다른 글

기본 정리  (0) 2023.01.14
com.fasterxml.jackson.databind.exc.InvalidDefinitionException  (0) 2023.01.06
JVM  (0) 2023.01.06