• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

정적 멤버의 상속 질문

22.03.18 14:52 작성 조회수 169

0

클래스 상속시 가반 클래스에 정적 멤버가 있을 경우 해당 멤버의 상속이 가능한 건가요? 제가 찾아보아도 무언가 애매모호한 해설들만 있어서 질문 드립니다. 답변 부탁드립니다.

답변 1

답변을 작성해보세요.

1

1)
기반 클래스에 static 변수가 있다면,
상속받은 클래스에서도 일단 해당 변수를 사용할 수 있습니다.

2)
그러나 static 변수를 virtual로 만들 수는 없고, 당연히 override 할 수도 없습니다.

3)
동일한 이름의 static 변수를 자식 클래스에서도 만든다면,
new 키워드를 이용해서 만들 수는 있지만
이건 상속과는 조금 다른 개념이고 아예 새로운 변수를 만드는 것이 되겠죠.

문법 관련된 부분은 직접 테스트를 해보는게 제일 이해하기 수월합니다.

KoKo님의 프로필

KoKo

질문자

2022.03.22

"파생 클래스에서 기반 클래스의 static 멤버를 사용할 수는 있지만 그 static 멤버는 기반 클래스의 단 하나의 정적 멤버이지 파생 클래스에 새로운 static 멤버가 복사되어 만들어 지는것은 아니다"란 말씀이신 가요?

홍지환님의 프로필

홍지환

2022.03.25

static으로 선언한 것은 프로그램 내에 단 하나만 존재하기 때문에 상속관계에 있는 기반 클래스의 static 맴버와 파생 클래스의 static맴버는 같은 static 맴버입니다.

부모 개체(인스턴스)와 자식 개체를 만든 후에 static 변수를 1씩 증가시켜보고 값이 어떻게 변하는 지 확인해보시면 더욱 자세히 이해가 가지 않을까 생각이 듭니다.

혹시 틀린 부분이 있다면 댓글 부탁드리겠습니다. 감사합니다.