날마다 새롭게 또 날마다 새롭게

클래스 상속의 이해 본문

프로그래밍/C / C++

클래스 상속의 이해

아무유 2012. 9. 25. 14:21

 상속은 부모님으로부터 어떤 대상을 물려받는 것을 말한다. 클래스 상속도 원래 상속이 갖고 있는 의미와 마찬가지로 부모 클래스가 가지고 있는 것을 자식 클래스에게 물려주는 것을 말한다. 다시 정리하면,

A 클래스가 B 클래스를 상속한다.

라는 말은 A 클래스는 B 클래스의 모든 멤버를 물려받았다 라는 것을 의미한다. 

 상속에 대한 정의는 다음과 같이 한다. 

 "class A : public B

{   ....   }"

 주의사항..  A 클래스가 B 클래스를 상속하기 위해서는 B 클래스가 먼저 생성되어 있어야 한다...... 닭이 먼저냐 달걀이 먼저냐.....

 그렇다면 이 상속은 왜 필요한가? 상속을 통해서 부모가 가진 특성들을 그대로 갖고 있는 여러 자식 클래스들을 만들어 사용할 수 있다는 장점이 있다. 예를 들어, S 클래스가 A라는 클래스를 이용하여 특정 기능을 갖도록 구현하였다 하자. 그런데 특정 기능을 그대로 유지하면서 A 클래스 말고 B 클래스가 추가 되면 B 클래스를 반영하기 위해 S 클래스는 변경이 되어야한다. 하지만 이 상속을 이용하면 S 클래스를 변경하지 않고 B 클래스를 추가할 수 있다.


 상속을 위한 조건

1. IS-A 관계

2. HAS-A 관계

상속은 IS-A 관계의 표현에 매우 적절하다. HAS-A 관계의 표현에도 사용할 수 있으나, 프로그램의 변경에 많은 제약을 가져다 줄 수 있다.


Comments