객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로 프로그램을 여러 개의 독립적인 단위인 객체들의 모임으로 보고 이들의 상호작용으로 서술하는 방식입니다. 이는 실세계의 사물이나 개념을 컴퓨터 프로그램에 반영하기 용이하게 만들어주고 코드의 재사용성과 유지보수성을 높인다.
캡슐화는 데이터와 그 데이터를 처리하는 함수를 하나로 묶어 객체로 만들고 외부에서 객체 내부의 데이터에 직접 접근하는 것을 제한하는 것을 말합니다. 마치 알약 캡슐이 안에 있는 약 성분을 보호하듯이 객체 내부의 중요한 데이터가 외부의 잘못된 접근으로 인해 변경되는 것을 막아 프로그램의 안정성을 높입니다.
상속은 상위 클래스의 속성과 메서드를 하위 클래스가 물려받아 사용할 수 있게 하는 기능입니다. 이를 통해 코드의 중복을 줄이고 기존 코드를 재사용하여 새로운 클래스를 쉽게 만들 수 있다.
같은 이름의 메서드라도 객체의 종류에 따라 다르게 작동하는 것을 말합니다. 이를 통해 코드를 더 유연하고 간결하게 만들 수 있습니다.
객체의 공통적인 속성과 기능을 추출하여 클래스로 정의하는 과정을 말합니다. 복잡한 내부 구현은 숨기고 사용자가 꼭 알아야 할 핵심적인 기능만을 노출시켜 프로그램의 복잡도를 낮추고 단순화하는 데 목적이 있습니다.