인프런 커뮤니티 질문&답변
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
작성
·
17
·
수정됨
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
Hankyy님께서 질문하신 상속 관계에서의 멤버 변수 오버라이딩에 대한 내용은 객체지향 언어에서 많이 헷갈려하는 부분 중 하나입니다. 자바 언어에서는 메서드 오버라이딩이 가능한 반면, 멤버 변수에 대한 오버라이딩 개념은 존재하지 않습니다. 멤버 변수는 각 클래스에 종속적이며, 자식 클래스에서 부모 클래스와 동일한 이름의 변수를 선언하면, 자식 클래스의 변수가 부모 클래스의 변수를 ‘숨기게’ 됩니다. 이로 인해 자식 클래스의 인스턴스에서 해당 변수에 접근할 때는 자식 클래스의 변수가 우선됩니다.
메서드 오버라이딩: 메서드는 자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용합니다. 이때
@Override어노테이션을 사용하여 명시적으로 오버라이드함을 나타낼 수 있습니다.멤버 변수의 숨김: 자식 클래스에서 부모 클래스와 동일한 이름의 변수를 선언하면, 자식 클래스의 변수는 부모 클래스의 변수를 숨기게 됩니다. 그러나 이는 오버라이딩이 아니라 숨김이라고 표현합니다. 따라서
@Override는 적용되지 않습니다.
자세한 설명을 원하시면, 다음의 질문과 답변을 참고하실 수 있습니다:
- 루프 속 멤버 변수 정의와 접근: 루프와 멤버 변수 정의에 관한 논의를 통해 멤버 변수 개념을 심화적으로 이해하실 수 있습니다.
- 다형성 및 상속에서의 변수 참조: 다형성 및 상속에서의 변수 참조에 대한 맥락을 배울 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





