> OOP- object - oriented programming
기본 정의: 컴퓨터 프로그램을 어떤 데이터를 입력받아 순서대로 처리하고 결과를 도출하는 명령어들의 목록으로 보는 시각에서 벗어나서 여러 독립적인 부품들의 조합, 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미함
큰 틀: 어떤 프로그램의 일부분에 해당하는 작은 부품, 즉 객체를 먼저 만들고 이렇게 만들어진 여러 객체들을 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론을 뜻함
장점
상속이란?
-여러 개체들이 지닌 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립하는 과정
하위클래스가 상위클래스의 변수와 기능, 특징을 물려 받아 재사용 할 수 있음.
추상화란?
-갹체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출해 내는 작업을 뜻 함. 위에 간략하게 설명한 상속과 관련이 큰 특징.

예를 들어 쇼핑 스토어에 티비, 에어컨 등 여러가지 전자제품에 대해 올려야 된다고 생각해보면
기본적으로 공통되게 들어야가 하는 부분이 제품 이름/ 가격/ 사이즈 등등
A라는 개발자가 작업을 하다, B라는 개발자에게 토스를 하였는데 B개발자는 name, price, size중 price를 누락 시켜버렸다.
이렇게 코드가 누락이 되는 경우 또는 오타 또는 반복적으로 계속해서 겹치는 부분들을 복사 붙여넣기를 할 수 없으니 사전에 방지하고 개발자의 편의를 위해 한번에 적용할 수 있도록 따로 빼는 것을 위에 사진에서 볼 수 있듯 //추상화// 라고 볼 수 있다.
즉, 겹치고 공통적인 부분을 빼서 좀 더 상위 클래스를 만들어주는 개념이라고 이해 하면 될것 같다.
상속 또한 간략하게 정리를 다시 해보자면 확장편이라고 이해하면 쉽다.
심즈라는 게임을 할떄도 심즈 확장팩 처럼 클래스간 공유될 수 있는 속성과 기능들을 상위 클래스로 추상화 시켜 해당 상위 클래스로부터 확장된 여러 개의 하위 클래스들이 모두 상위 클래스의 속성과 기능들을 간편하게 사용 할 수 있도록 하는 것.
반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근 하는 것이라고 생각하면 된다.