객체 지향 언어의 4대 특징
1. 캡슐화 (Encapsulation)
- 캡슐화는 객체지향에서 데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는다.
- 데이터를 은닉하고 그 데이터를 접근하는 기능을 노출시키지 않는다는 의미이다.
접근 제어 지시자
- public : 모두가 접근 가능
- protected : 상속 / 같은 패키지 내 클래스에서 접근 가능
- proivate : 본인만 접근 가능
2. 상속 (Inheritance)
- 상속이란 상위개념의 특징을 하위 개념이 물려받는 것을 의미한다. 하나의 클래스가 가지고 있는 특징 (데이터와 함수)들을 그래도 다른 클래스가 물려주고자 할 때 상속의 특징을 사용한다.
- 코드의 재사용성을 증대 시킬 수 있다. -> 같은 기능을 또 구현 할 필요가 없다.
- 좀 더 폭넓게 사용 간으하다. 상속 받은 함수를 추가적으로 데이터와 함수 내용을 변경할 수 있다.
3. 추상화 (Abstraction)
- 추상화란 객체들의 공통적인 특징(속성과 기능)을 뽑아내는 것이다.
-> 이는 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것을 의미한다.
4. 다양성 (Polymorphism)
- 다향성이란 다양한 형태로 표현이 가능한 것을 의미한다.
오버라이딩(Overrideing)
- 같은 메서드 이름 / 같은 인자 목록 / 상위 클래스의 메서드를 재정의한다.
상위 클래스 타입의 객체 참조 변수에서 자동으로 하위 클래스가 오버라이딩한 메소드를 호출해 준다.
오버로딩(Overroding)
- 같은 메서드 이름 / 다른 인자 목록 / 다수의 메서드 중복 정의한다.