• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

1:49 Line 16 CreatureType type; 질문

21.04.16 21:08 작성 조회수 105

0

CreatureType type 에 protected를 붙이니까

'Monster.type'은(는) 상속된 'Creature.type' 멤버를 숨깁니다. 숨기려면 new 키워드를 사용하세요 라고 뜨는데 이게 무슨 뜻인지 모르겠어요..

new 붙이니까 없어지긴하던데..

.

PlayerType 이랑 MonsterType에 protected를 쓸때랑CreatureType에 protected를 쓸 때 어떤 차이점이 있는지 궁금해요.

.

분명 상속하는 애들만 쓰게하는거니까 CretureType에도 써도 될꺼같은데 말이죠..

답변 1

답변을 작성해보세요.

1

동일한 이름 'type'을 써서 그런겁니다.
protected을 쓰면 후손들한테 해당 기능을 물려주는데
결과적으로 CreatureType의 type과 MonsterType의 type 2개가 생기게 되는거죠.
동일한 이름의 변수 2개가 있으니 문제가 되는 것이고
new 키워드를 사용하면 이름 충돌을 해결할 수 있긴 하지만
그다지 추천되는 방법은 아니고 그냥 이름을 다르게 짓는게 좋습니다.