12강. 상속 - I - 상속! 어렵지 않아요. 일상에서 알고 있는 상속 입니다. - 상속이 필요한 이유 - 상속 문법의 이해 - 상속 예제 – 대대로 이어오고 있는 식당 메뉴 Lecturer Kim Myoung-Ho Nickname 블스 blogstudy@naver.com
상속하고, 필요한 것은 추가하고, 변경할 곳은 변경하였습니다. 12-1. 상속! 어렵지 않아요. 일상에서 알고 있는 상속 입니다. 아들왈 : 아버지~~ 편하게 살게 재산 많이 물려 주세요. 객체지향 언어의 대표적인 JAVA를 공부 할 때 가장 중요하고 꼭 알고 넘어가야 하는 부분이 상속과 추상화 개념입니다. 이렇게 중요한 부분을 정확하게 알고 사용하는 개발자는 의외로 많지 않습니다. 그런 개발자를 누군가는 이렇게 말합니다. ‘무늬만 개발자’라고요. 다소 농담 섞인 의견 이였으나, 중요한 것은 객체지향 언어를 하면서 상속과 추상화를 모르면 객체지향 언어를 한다고 말할 수 없을 정도로 상속과 추상화 개념은 중요 합니다. 하지만 절대로 어렵지 않습니다. 아주 쉽습니다. 상속은 우리가 일상에서 알고 있는 상속 입니다. 아버님의 재산을 물려받는 아들의 경우 아버님으로부터 아들은 재산을 상속 받은 경우 입니다. 반대로 아버님이 많은 빚을 아들에게 물려주는 경우도 있습니다. 이 경우에도 아들은 아버님으로부터 많은 빚을 상속 받은 경우 입니다. 프로그래밍에서도 어떤 객체가 다른 객체로부터 객체의 데이터(속성)와 메소드를 상속 받을 수 있습니다. 이럴 경우 상속받은 객체는 상속해준 객체의 데이터 및 메소드를 이용할 수 있고 또는 변경 할 수도 있습니다. 상속을 통해서 4발 자전거를 만든다고 생각해 보겠습니다. 자전거에는 기본적으로 핸들, 바퀴, 브레이크, 페달, 프레임 등이 있어야 합니다. 그리고 4발 자전거는 바퀴가 4개 있어야 합니다. 자전거 제작자가 처음부터 4발 자전거를 만들려고 하면 많은 시간과 노력이 필요 합니다. 그래서 자전거 제작자는 아이디어를 생각해 냅니다. 자전거 가게에 가서 2발 자전거를 사가지고 와서, 뒷바퀴에 2개의 바퀴를 달면 4발 자전거가 쉽게 제작 되어집니다. 몇 일이 걸릴 수 있고, 여러 번의 시행착오가 생길 수 있는 자전거 제작을 단 몇 분만에 뚝딱 끝낼 수 있게 되었습니다. 프로그램도 마찬가지 입니다. 기존의 좋은 클래스가 있다면 상속을 통해서 개발시간을 단축시킬 수 있습니다. 상속 상속하고, 필요한 것은 추가하고, 변경할 곳은 변경하였습니다.
12-2. 상속이 필요한 이유 항상 맨땅에 헤딩 할 수는 없습니다. 지름길이 있다면 쉽게 갈 수도 있습니다. 상속이 필요한 이유는 크게 두 가지 이유입니다. 첫째로는, 모든 개발을 처음부터 하얀 도화지에 할 필요는 없습니다. 이미 훌륭한 선배님들께서 만들어 놓은 프로그램이 있다면 상속을 통해서 훌륭한 결과물을 빠른 시간 내에 만들 수 있습니다. 또한 기존의 훌륭한 프로그램은 대부분 검증이 잘 되어 있어 버그도 거의 없을 수 있습니다. 둘째로는, 다양한 객체(타입)를 상속을 통해서 하나의 객체(타입)으로 묶을 수 있습니다. 이것은 추상화 개념의 이해가 있어야 하는데요, 아직은 추상화에 대해서 살펴보지 않았으므로 우선은 다양한 객체를 하나로 통일 시킬 수 있다고만 알고 있으면 될 거 같습니다.
12-3. 상속 문법의 이해 프로그램에서 상속의 문법을 배워 보자. 상속의 개념에 대해서 이제 감을 잡았을 거 같습니다. 사실 별로 어려운 부분도 없었습니다. 상속은 말 그대로 상속일 뿐입니다.
청국장 청국장 된장국 쇠고기 청국장 갈비찜 된장국 콩비지 얼큰 된장국 콩비지 콩나물국 12-4. 상속 예제 – 대대로 이어오고 있는 식당 메뉴 시대가 변하면 메뉴도 업그레이드 되어야 합니다.(12_4_ex1_menu) 대대로 이어져오는 식당이 있습니다. 이식당은 변하지 않는 메뉴도 있지만, 시대의 변화에 맞춰 새로운 메뉴가 생겼습니다. 청국장 청국장 된장국 쇠고기 청국장 갈비찜 된장국 콩비지 얼큰 된장국 콩비지 콩나물국 예전 메뉴 현재 메뉴
12-4. 상속 예제 – 대대로 이어오고 있는 식당 메뉴 시대가 변하면 메뉴도 업그레이드 되어야 합니다.