-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
접근한정자에 대해서 질문있어요
20.11.18 00:01 작성 조회수 189
1
부모클래스에서 생성자나 변수에 protected를 붙이면 물려받은 자식클래스에서 접근할수있는데
부모클래스에서 함수앞에 protected를 붙이면 왜 물려받은 자식클래스에서 접근할수없는건가요..?
가르쳐 주시면 감사하겠습니다.
답변을 작성해보세요.
2
Rookiss
지식공유자2020.11.18
그건 이미 Knight와 Player 클래스 밖으로 빠져 나온 상황이기 때문입니다.
사실 main함수도 유심히 보면 class Program 안에 속해 있습니다.
Program과 Knight/Player는 어떤 상속 관계도 아니니까
protected 계열 변수나 함수 호출 모두 막히는게 정상입니다.
1
0
0
오유리
질문자2020.11.18
아..질문을 잘못했었어요..죄송합니다.
class Player
{
protected PlayerType type;
protected int hp;
protected int attack;
protected int GetHp() { return this.hp; }
protected void SetInfo(int hp, int attack)
{
this.hp = hp;
this.attack = attack;
}
}
class Knight : Player
{
public Knight()
{
SetInfo(100, 10);
}
}
이렇게 자식클래스에서는 함수사용이 가능한데
main함수안에
Knight knight = new Knight();
knight.GetHp();
이렇게하면 보호수준에러가 뜨더라구요..
Knight는 Player에게 상속받고 knight는 Knight의 인스턴스니깐 사용될것같은데..왜 안되는건가요..?
답변 4