상속이란 단어를 네이버에서 쳐보면 전혀 엉뚱한 답변이 나와서 정확한 키워드를 입력해 보기로 결심하고 객체지향 상속 이라는 문장으로 검색을 해 보았습니다.
블러그나 지식인에는 많은 답변이 있더군요 모두 비슷비슷해서 하나 찾아서 적어 둡니다. 또 잃어 버릴지도 모르니까 말이죠.

상속이란?
예를들어 가전제품 클래스를 물려받은 세탁기, 냉장고, 블렌더 등은 가전제품(슈퍼클래스)의 모든 특성을 물려받게 된다. 이때 세탁기, 냉장고, , 블렌더 등을 서브클래스라 한다.
특성을 물려받은 각각의 서브클래스는 자신만의 속성과 행동을 추가할 수 있다.

이렇게 정의를 해 두었군요.
우리는 흔히 슈퍼클래스, 부모클래스 그리고 서브클래스, 자식클래스라는 말들을 프로그램을 좀 다를줄 아는 사람들끼리 객체지향을 공부한 애들끼리 쓰는 말로 첨에는 단순하게 아 부모가 자식에게 물려주는 거구나 하는 생각으로 쓰곤 하죠. 저 또한 그랬구요. 네 맞습니다. 지금 생각하고 공부한 내용이 맞아요. 아직도 다른 참고 문서를 읽어보면 또 이런식으로 내용이 나왔네요.

"클래스를 상속한다. 와 클래스를 사용한다. 라는 말은 객체 지향 프로그래밍의 기초가 되는 프로그래밍 스타일 입니다."

이제 적당히 하고를 예를들어 코딩으로 표현해 볼까요?
public class Animal{
}

class dog : public Animal{
}

이런식에 방법은 우리가 통신을 하거나 파일관리 클래스를 만들때 자주 사용하는 방법인데요 통신에는 그종류가 너무나 많습니다. 예를들어 우리가 tcp 통신을 위해서 프로그래밍을 만들었다고 했다고 칩시다. 그럼 여러분은 tcp에 관련된 통신 모듈만 만드시나요? 아님 통신이라는 큰 공통 모듈을 하나 만들어서 tcp 클래스로 만들어 상속을 받아서 사용을 하시나요? 제 생각에는 상속을 받아서 사용하면 나중에 공통부분을 다시 구현하지 않아도 되고 유지보수도 편할 것 같아서 두번째가 더 현명하게 제작하는것 이라고 생각하네요. 

결론을 내리자면 어느게 답이라고 말하기 보다는 상속을 자신의 스타일에 맞게 이해하고 응용 할수 있어야 한다 입니다.. 저또한 그러기 위해서 많은 서적도 읽고 프로젝트중 코딩을 할때 응용도 많이 해 보았습니다.
프로그래밍 언어를 배운다는 것은 책을 정독해서 읽고 외우는게 아니라 손에 익힐정도로 많이 짜보고 쳐서 자기것으로 만드는것이 가장 중요하다고 하네요.

'기타 > 객체지향언어특징' 카테고리의 다른 글

추상화  (0) 2009.08.28
캡슐화  (0) 2009.08.28
다형성  (0) 2009.08.28
C++ 과 C#의 차이점  (0) 2009.08.19

+ Recent posts