[ 개발 공부 ] 객체지향의 4대 특징

2024. 5. 22. 16:00게임 개발/개발 공부

 

객체지향, OOP의 4대 특징

추상화, 상속, 다형성, 캡슐화

 

1) 추상화

어떤 대상/집단의 공통적이고 본질적인 특징을 추출하여 정의하는 것

abstract class, interface가 활용된다.

 

 

예를 들어 트럭, 비행기, 스포츠카, 배가 있다고 한다면,

모두 탈 수 있는 이동 수단이기 때문에 Riding이라는 추상 클래스를 만든다.

Riding은 탑승을 실행하는 Ride함수와 이동 속도인 Speed값을 가지고 있다.

 

이 중에서도 트럭과 스포츠 카는 둘 다 바퀴를 가지고 있기에

Car라는 추상 클래스를 만들어 바퀴 값을 추가로 가지게 한다.

 

이러한 과정을 추상화라고 보면 된다.

 

결과적으로 트럭, 스포츠 카는 Car를 상속받고, 비행기와 배는 Riding을 상속받는다.

 

2) 상속

상위 개념을 하위 개념이 물려받는 것

위에서 보여줬던 것처럼, 여러 개체들이 지닌 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립하는 과정입니다.

 

3) 다형성

하나의 객체나 메서드가 여러 가지 다른 형태를 가질 수 있는 것

메서드 오버로딩과 오버라이딩이 있다.

 

예를 들어 텍스트를 출력하는 PrintOut이라는 virtual 함수를 가진 Print가 있다면,

Print를 상속받은 AAPrint, BBPrint가 있을 때, 각 함수에서 메서드 오버로딩을 통해 AAPrint에서는 AA를 출력, BBPrint에서는 BB를 출력하도록 만들 수 있다.

 

4) 캡슐화

연관된 데이터와 기능을 하나로 묶어, 불필요한 요소를 외부에 노출되지 않도록 설계하는 방식

외부에서 알 필요가 없는 부분을 감춰 대상을 단순화한다.

 

데이터를 보호하고, 데이터 값이 외부에서 예상치 못하게 변환되는 것이 없기 때문에 안정적으로 작동할 수 있다.