인프런 커뮤니티 질문&답변
조상 클래스 호출에 관한 질문입니다.
작성
·
293
0
영상의 코드에서 Creature의 Get_OnDamage(int damage) 메서드를 수정하여,
public void On_Damage(int damage)
{
_hp -= damage;
Console.WriteLine($"{_type}(은)는 {damage}의 피해를 입었습니다!");
Console.ReadLine();
Console.Clear();
if (_hp <= 0)
_hp = 0;
}
이런 식으로 "기사(은)는 ~~", "마법사(은)는 ~~"이라고 출력하고 싶습니다.
하지만 그러려면 Monster인지 Player인지가 아니라,
한단계 더 밑인 클래스 타입을 불러와야 하는데...
조상 클래스에서 자식의 자식 필드를 쓴다던가 불러올 수 있나요?
퀴즈
42%나 틀려요. 한번 도전해보세요!
TextRPG2에서 Creature 클래스를 도입한 주된 이유는 무엇일까요?
플레이어와 몬스터를 구별하기 위해
반복되는 코드(HP, 공격력 등)를 재사용하기 위해
파일을 분리하여 관리하기 위해
플레이어 타입(기사, 궁수 등)을 정의하기 위해
답변 5
1
1
Rookiss
지식공유자
여러 가지 방법이 있는데,
1) 희망하는 클래스로 캐스팅을 해보고 체크를 하는 방법 (다소 느림)
-> ex) as Knight, is Knight 등
2) PlayerType 등으로 타입 정보를 Player 클래스에 넣는 방법
-> Player 캐스팅 후, PlayerType을 체크해서 기사/법사/궁수 등 여부 확인
이런 식으로 구현하시면 되겠습니다.
0
0
mir8725
질문자
한가지 더 궁금증이 생겼습니다.
Creature는 자식이 Monster 아니면 Player인데,
만약 Player player = Creature as Player해서
player == null이라면, 이 클래스는 Monster라고 확신할 수 있을까요?
아니면 예기치 못한 오류로 null이 될 수도 있나요?
0





