Java 언어의 특징으로는 기본적으로 추상화, 캡슐화, 상속, 다형성을 추구합니다.객체지향 프로그래밍으로서 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위,즉 "객체"들의모임으로 파악하여 서로 메세지를 주고 받으며 협력합니다.프로그램을 우연하고 변경이 용이하며(다형성) 대규모 소프트웨어 개발에서 사용됩니다. 현실세계를 빗대어 예를 들자면 다음과 같습니다. 운전자는 K3에서 아반떼로 차를 바꾸어도 운전을 못하는 일은 없습니다(유연하고 변경 용이).즉, 운전자는 클라이언트이며 클라이언트에 영향을 주지 않고 구현이 가능합니다.클라이언트는 인터페이스만 알면 되며, 구현대상의 내부구조를 몰라도 되고, 구현대상의 내부구조가 변경되어도 영향을 받지 않으며, 구현대상다체를 변경하여도 영향..