유연성을 확보하기 위해 구체적인 것은 제거한다는 의미, 작성하려는 클래스의 속성과 기능 중 프로그램에서 필요한 공통점을 추출하고, 불필요한 부분을 제거하는 과정
ex) 국가에서 국민 정보 관리용 프로그램을 만들려고 할 때, 프로그램에서 요구되는 “국민 한 사람"의 정보(속성)를 추상화 한다면?
구체적인 부분은 제거 한 후 국민 모두 공통적으로 가지고 있는 점들을 추출
주민등록번호
이름
성별
주소
전화번호
나이
이런 것들을 뽑아서 객체 지향 프로그래밍 언어를 사용해서
변수명(데이터 이름)과 자료형(데이터 타입) 정리하는 것이 추상화