-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
안녕하세요. 질문드립니다.
22.06.08 23:50 작성 조회수 135
0
안녕하세요.
객체 할당 시 부모 클래스에 자식 클래스를 할당하는 경우가 있는데 왜 이렇게 하는지 알려주시면 감사하겠습니다.
ex) 왜 3, 4 같이 하지 않고 1, 2 같이 하는지 궁금합니다.
1. Player player = new Knight();
2. Player player = new Mage();
3. Knight player = new Knight();
4. Mage player = new Mage();
답변을 작성해보세요.
1
Rookiss
지식공유자2022.06.08
3, 4 같이 하면 무늬만 player라는 이름의 변수일 뿐,
실제 타입은 Knight, Mage입니다.
그리고 일반적으로는 이게 맞는 방법입니다.
그러나 나중에 자료구조를 배우고 데이터를 관리해야 할 경우,
혹은 다양한 함수를 만들어야 할 경우 이렇게 일일히 원본 타입으로 관리하면 한계가 있습니다.
가령 와우에서는 기사, 성기사, 마법사, 도적, 주술사, 사냥꾼 등 아주 많은 직업들이 있는데요.
이들이 던전을 입장하는 함수를 만들어야 한다고 가정 해봅시다.
void EnterDungeon(Knight knight), EnterDungeon(Paladin paladin) ...
이렇게 온갖 버전을 다 만들어줘야겠죠.
반면 이들이 상위 공통 부모 클래스 Player를 상속받은 상태라면,
void EnterDungeon(Player player) 한개만 만들고 이를 퉁쳐서 재사용할 수 있습니다.
자료구조도 마찬가지로 Dictionary<int, Player>로 퉁쳐서 관리할 수 있는데
그게 아니라면 클래스별로 Dictionary를 만들어야 하는데 너무 지옥이 되겠죠.
답변 1