inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

Java에서 정적 변수에 접근하는 방법은 4가지에요.

static 변수 질문입니다.

2

달아단거

작성한 질문수 5

0

부모자식 상속 관계에서
부모에도 자식에도 static 변수 a가 선언 되어 있다면
업캐스팅시와 업캐스팅이 아닐때 그리고
부모.static변수 호출
자식.static변수 호출 이때가 궁금합니다.
static 변수는 무조건 부모의 static 변수 호출 되는건가요?

python java c 정보처리기사 정보처리산업기사

답변 2

0

주말코딩

안녕하세요. 핵심만 정리하면 다음과 같습니다.

규칙 하나면 됩니다: 필드(static 포함)는 “참조 변수의 선언 타입”으로 결정됩니다. 메서드는 실제 객체 타입(런타임)으로 결정되지만, 필드는 반대입니다.

부모와 자식에 같은 이름의 static 변수가 있으면 오버라이딩이 아니라 숨김(hiding) 이며, 두 변수는 서로 별개입니다.

Parent.a       // 10 (부모 것)

Child.a        // 20 (자식 것)


Parent p = new Parent();  p.a  // 10

Child  c = new Child();   c.a  // 20


Parent pc = new Child();  pc.a // 10 ← 실제는 Child지만 선언 타입이 Parent라 부모 것

즉 “무조건 부모 것”이 아니라, 어떤 타입의 이름/참조로 접근했느냐에 따라 달라집니다. 업캐스팅한 참조로 접근하면 그 참조의 선언 타입인 부모 것이 나옵니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 달아단거님.

자바에서 static 변수는 클래스 레벨에서 관리되기 때문에, 해당 클래스의 이름을 통해 직접 접근합니다. 상속 관계에 있는 클래스에서 static 변수가 각각 선언된 경우에는 각 클래스에 고유하게 존재하게 됩니다. 그러므로, 업캐스팅 여부와 관계없이 static 변수는 해당 클래스에 맞게 호출됩니다.

1. 업캐스팅 시와 업캐스팅이 아닐 때

  • 부모 클래스와 자식 클래스에 동일한 이름의 static 변수가 선언된 경우:
    • 업캐스팅 여부와 무관하게 static 변수를 참조할 때는 그 변수가 선언된 클래스명을 사용하여 접근합니다.
    • 예를 들어, Parent.a로 접근하면 부모 클래스의 static 변수 a에 접근하며, Child.a로 접근하면 자식 클래스의 static 변수 a에 접근합니다.

2. 부모.static 변수와 자식.static 변수 호출 시

  • static 변수 호출 방법:
    • Parent.a: 부모 클래스의 static 변수를 호출합니다.
    • Child.a: 자식 클래스의 static 변수를 호출합니다.

추가 설명

  • 상속 관계라도 static 변수는 오버라이딩 되지 않으며, “숨김(hiding)“이 발생한다고 생각할 수 있습니다. 하지만 이러한 숨김은 객체 메서드처럼 동작하지 않으며, 클래스 타입을 기반으로 접근해 사용합니다.

이러한 원리를 이해하면, static 변수에 대해 더 명확하게 접근 방법을 이해할 수 있게 됩니다. 추가적으로 궁금하신 부분이 있으면 언제든 질문해 주세요.

관련하여 더 많은 정보를 얻고 싶으시다면, 다음 링크를 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

파이썬 4강 질문입니다.

0

19

2

모의고사 1회 3번문제

0

49

3

41강 30:10

0

27

2

이론 공부법 질문 있습니다.

0

53

2

부모의 생성자 관련 질문

0

27

2

시험지 문제에 필기해도 되나요?

0

32

3

41강 11:23

0

30

2

4강파이썬 질문입니다

0

22

2

try-catch 핸들러명

0

32

2

36강 3:48

0

35

2

35강 18:27

0

33

2

자식 코드 내 super() 생략

0

40

2

출력질문

0

49

2

31강 4:06

0

45

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

74

3

섹션 2 - 9강 강의자료 다운로드 문제

0

55

3

29강 3:09

0

41

2

28강 6:42

0

48

2

22강 17:33

0

46

2

75강 26년 1회 코드 문제 해석 강의 질문 드립니다.

1

58

2

모의고사

0

69

1

17강 28:26

0

52

2

C언어 기출문제 변형에서 6번 문제입니다. 20:56

0

57

3

17강 22:38

0

48

2