제한 없는 T는 Object 기능만 안전하게 사용할 수 있다

main에서 Dog만 사용해도 클래스 계약에는 Integer가 올 수 있습니다.

1

T declaration

<T>

모든 참조 타입

2

compiler view

Object

size 없음

3

animal.size

컴파일 실패

계약 부재

4

add bound

T extends Animal

기능 확보

5

return

T 유지

Dog 보존

핵심: 상한은 입력을 줄이고 구현 가능 행동을 늘립니다.