📌 객체 지향 언어란?
- 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어
📌 객체 지향 언어의 특징
🌈 1. 캡슐화
- 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것
- 객체는 캡슐화가 기본 원칙이지만 외부와의 접속을 위해 몇 부분만 공개 노출한다.
- 자바에서 객체는 클래스라는 캡슐을 사용하며, 필드(멤버 변수)와 메소드(멤버 함수)로 구성된다.
💡 캡슐화의 예시
접근 지정자 : 객체의 접근에 대한 허용 범위를 지정
🌈 2. 상속
- 하위 개체가 상위 개체의 속성을 모두 가지는 관계 ex) 생물 → 동물, 식물
- 자바의 상속은 자식 클래스(서브 클래스)가 부모 클래스(슈퍼 클래스)의 속성을 물려받고 기능을 추가하여 확장하는 개념
🌈 3. 다형성
- 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질
💡 다형성의 예시
메소드 오버라이딩 : 슈퍼 클래스에 구현된 메소드를 서브 클래스에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 것
메소드 오버로딩 : 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 만드는 것, 매개변수의 개수를 다르게 하여 구분한다.