데이터의 타입을 일반화 하는 것을 뜻한다. 클래스, 메서드에서 사용할 내부 데이터의 타입을 컴파일 시에 미리 지정하는 방법이다. 이는 클래스의 외부에서 사용자에 의해 지정된다.
클래스나 메서드의 내부에서 사용되는 객체의 타입안정성을 높일 수 있다. 클래스의 외부에서 타입을 지정해주기 때문에, 타입을 체크 할 필요가 없어 관리 편하다. 비슷한 기능의 경우에는, 코드의 재사용성이 높아진다.