inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

다형성

3:15 Line 39 player.Move();에 mage가 전달 안된 이유

284

포도

작성한 질문수 11

0

EnterGame(mage)로 분명 전달했는데

player.Move();가 Mage 클래스의 Move()가 아닌 Player 클래스의 Move()가 작동하는 이유가 궁금해요.

mage를 분명 전달했는데 player가 mage로 받아들이지 못하는 이유..

혹시 자식->부모클래스로 형변환은 강제형변환을 해줘야 하는 것 때문에 mage를 받지 못하고 player 그대로를 인식해서 player의 move()가 호출된건가요?

그리고 override를 사용하면 런타임에 타입을 자동으로 체크해준다 하셨는데 그게 자동 형변환이 되는거라고 보면 되나요?

C#

답변 1

0

Rookiss

네 맞습니다.
EnterGame(Player player); 는 인자로 Player를 받아주기 때문에
설령 mage를 전달했더라도 그 객체를 player로 인식하는 것입니다.
실제로 Mage도 Player이기도 하니 틀린 말은 아니죠.
가상 함수를 사용하면 실제 원본 클래스가 무엇으로 만들어졌는지에 따라
override 된 함수를 호출해줍니다.

Generic에 대한 질문 있습니다.

0

95

2

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

0

201

2

다형성 캐시 문제

0

112

3

.

0

71

1

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

0

78

1

이후 커리 질문

0

86

1

static

0

91

2

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

0

72

1

생성자의 이름 선언

0

65

1

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

0

88

1

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

0

239

1

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

0

249

1

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

0

306

2

Activator 질문있습니다

0

332

1

이넘 타임 선언 질문

0

345

1

Sort 오름차순, 내림차순

0

323

1

질문 있습니다.

0

249

1

팩토리얼 문제

0

270

1

Sort함수 질문있습니다.

0

265

1

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

0

221

1

질문이 있습니다.

0

226

1

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

0

213

1

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

1

281

1

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

0

393

1