클래스에 사용할 타입을 디잔인(설계)시에 지정하는 것이 아니라 클래스를 사용할 때 타입을 지정한 후 사용하는 기술을 말한다.(1) 컴파일 시 잘못된 타입 사용을 체크하기 때문에 타입 안전한(Type Safty)코딩을 할 수 있다.(2) 불필요한 타입변환(casti