추상화의 사전적 의미는 '사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것'이다. 여기서 핵심적인 개념은 '공통성과 본질을 모아 추출하는 것'이다. 자바 프로그래밍에서의 추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미한다. 상속이 하위 클래스를 정의하는 데 상위 클래스를 사용하는 것이라고 한다면 추상화는 기존 클래스들의 공통적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것이다. 예를 들어, 강아지나 고양이 등의 애완동물은 먹기, 걷기 등의 행동을 하기 때문에 '애완동물'이라는 추상 클래스를 만들 수 있다. 이렇게 공통적인 속성과 기능을 모아서 정의해주면 코드의 중복을 줄일 수 있고, 보다 효과적으로 클래스 간의 관계를 설정할 수 있으며 유지 보수가 용..