inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

클래스 형식 변환

안녕하세요. 질문드립니다.

216

작성자 없음

작성한 질문수 0

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();

C#

답변 1

1

Rookiss

3, 4 같이 하면 무늬만 player라는 이름의 변수일 뿐,
실제 타입은 Knight, Mage입니다.
그리고 일반적으로는 이게 맞는 방법입니다.

그러나 나중에 자료구조를 배우고 데이터를 관리해야 할 경우,
혹은 다양한 함수를 만들어야 할 경우 이렇게 일일히 원본 타입으로 관리하면 한계가 있습니다.
가령 와우에서는 기사, 성기사, 마법사, 도적, 주술사, 사냥꾼 등 아주 많은 직업들이 있는데요.
이들이 던전을 입장하는 함수를 만들어야 한다고 가정 해봅시다.

void EnterDungeon(Knight knight), EnterDungeon(Paladin paladin) ...
이렇게 온갖 버전을 다 만들어줘야겠죠.

반면 이들이 상위 공통 부모 클래스 Player를 상속받은 상태라면,
void EnterDungeon(Player player) 한개만 만들고 이를 퉁쳐서 재사용할 수 있습니다.

자료구조도 마찬가지로 Dictionary<int, Player>로 퉁쳐서 관리할 수 있는데
그게 아니라면 클래스별로 Dictionary를 만들어야 하는데 너무 지옥이 되겠죠.





Generic에 대한 질문 있습니다.

0

104

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

211

2

다형성 캐시 문제

0

120

3

.

0

74

1

프로퍼티 강의 질문 있습니다.

0

81

1

이후 커리 질문

0

88

1

static

0

98

2

강의에는 새로운 클래스 파일을 생성하면...

0

77

1

생성자의 이름 선언

0

67

1

9:03 Divide(10 , 3) 부분 질문입니다

0

91

1

깃허브 관련 질문 있습니다.

0

242

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

257

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

310

2

Activator 질문있습니다

0

341

1

이넘 타임 선언 질문

0

354

1

Sort 오름차순, 내림차순

0

328

1

질문 있습니다.

0

251

1

팩토리얼 문제

0

276

1

Sort함수 질문있습니다.

0

269

1

다형성 함수 질문 있습니다.

0

226

1

질문이 있습니다.

0

234

1

섹션2 연습문제 질문입니다.

0

218

1

안녕하세요~서버에 대해 질문이 있습니다.

1

285

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

399

1