C++
객체지향 프로그래밍의 특징
코다람쥐
2022. 1. 5. 13:01
1. 추상화(abstraction)
추상화란 복잡한 시스템에서 핵심적인 개념이나 기능을 뽑아내는 것으로 그 시스템에 대한 간략화 된 기술이나 명세를 말한다. 좋은 추상화는 사용자에게 중요한 정보는 강조하고 중요하지 않은 세부 구현 사항들은 감춘다.
2. 캡슐화(encapsulation)
객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고,
실제 구현 내용 일부를 외부에 감추어 정보를 은닉한다.
정보 은닉은 공개할 필요가 없는 데이터나 함수를 불필요하게 외부로 노출하지 않는 것이다.
3. 상속(Inheritance)
상속은 이미 작성된 클래스를 이용하여 새로운 클래스를 만드는 방법이다.
기존의 클래스를 부모 클래스 새로운 클래스를 자식 클래스라고 한다.
예를들어, 개라는 부모클래스를 상속하여 불독, 치와와 같은 자식클래스를 새롭게 정의하면 불독과 치와와는 개의 특징을 상속받고 나머지 부분들은 자식 클래스에서 새롭게 정의할 수 있게 되는 것이다.
4. 다형성(Polymorphism)
다형성은 동일한 메소드나 함수가 상황에 따라 다른 코드를 실행하는 것을 말한다.
이것은 동일한 함수에 대해 객체가 취하는 동작이 상황에 따라 달라지는 것을 의미하는데, 함수 중복(overloading)도 다형성의 일종이다.