객체 지향 프로그래밍이란?
객체 지향 프로그래밍
- 현실 세계를 모델링하는 프로그래밍 기법.
- 객체Object는 현실 세계에 존재하는 임의의 대상을 의미한다.
원리
- 추상화Abstraction: 비슷한 객체를 묶는 것. 시스템의 복잡성을 낮춘다.
- 상속Inheritance: 객체를 분류하는 것. 시스템의 확장성을 높인다.
- 다형성Polymorphism: 같은 객체가 다양한 모습을 띄는 것. Ex. 오버라이딩1, 오버로딩2, 인터페이스, 추상클래스.
- 캡슐화Encapsulation: 객체에 접근하는 방식을 제어하는 것. 구현 내용을 은닉한다. Ex. 접근제어자, 커스텀 Getter/Setter.
1상위 클래스의 멤버를 하위 클래스가 재정의하는 것.
2메서드의 이름이 같고 시그니처(매개변수 타입과 갯수)가 다른 것.