OOP
프로그램을 객체들의 상호작용으로 구성하는 방식
- 추상화
- 복잡한 내용을 숨기고 중요한 정보만 보여줌
- 추상 클래스와, 인터페이스
- 공통 기능의 틀만 제공하고, 세부 구현은 자식 클래스에서 맡김
- 캡슐화
- 데이터와 메서드를 하나의 객체로 묶고 외부의 접근을 막는 것
- 내부 구현을 숨기고 접근 제한
- private, public 등 접근 제한자 사용
- 상속
- 부모 클래스의 속성과 기능을 자식 클래스가 물려받는 것
- 코드 재사용성
- 다형성
- 같은 매서드 이름이지만 다르게 동작
- 오버라이딩, 오버로딩