더북(TheBook)

그러면 왜 부모-자식 관계가 필요할까요? 계층 구조를 떠올리면 조금 더 이해하기 쉽습니다. <스타크래프트>라는 게임의 유닛들로 예를 들어 설명해 보겠습니다. 혹시 이 게임을 모르더라도 게임 내에 존재하는 유닛들을 단순히 계층화했다고 생각하길 바랍니다. 게임에서 사용자가 만들 수 있는 테란 유닛들의 관계가 다음 그림과 같다고 하겠습니다.

▲ 그림 2-28 <스타크래프트> 게임 내 유닛 계층 구조

게임에 존재하는 유닛들은 기본적으로 체력, 이동 속도, 공격력, 방어력을 가지고 있고 움직일 수도 있습니다. 이는 모든 유닛이 공통으로 가진 속성과 기능(함수)입니다. 여기서 유닛 클래스에 체력, 이동 속도, 공격력, 방어력을 담은 변수와 움직일 수 있는 기능(함수)을 만들고 하위 계층에서 이 유닛 클래스를 상속받게 한다고 합시다. 그러면 모든 유닛에 필요한 체력, 이동 속도, 공격력, 방어력을 클래스마다 일일이 만들지 않고도 사용하게 할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.