인프런 커뮤니티 질문&답변
static 상속
해결된 질문
작성
·
92
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 티티티님.
static 메서드와 상속의 관계에 대해 궁금하신 점을 잘 이해하였습니다. 관련된 기초 개념을 간단히 설명드리자면 다음과 같습니다:
static 메서드:
- static 메서드는 특정 클래스에 속하며, 인스턴스가 아닌 클래스 자체로 호출됩니다. 그래서 인스턴스의 문맥에서 동작하는 오버라이딩의 대상이 되지 않습니다.
- 자식 클래스에서도 부모 클래스의 static 메서드를 호출할 수 있지만, 이는 단순히 부모 클래스의 메서드를 자식 클래스 문맥 안에서 사용할 수 있다는 의미입니다. 상속처럼 보일 수 있지만, 실제로는 각 클래스의 메서드로 별도로 존재하는 것입니다.
- static 메서드는 특정 클래스에 속하며, 인스턴스가 아닌 클래스 자체로 호출됩니다. 그래서 인스턴스의 문맥에서 동작하는 오버라이딩의 대상이 되지 않습니다.
오버라이딩(Overriding):
- 오버라이딩은 인스턴스 메서드에서만 적용됩니다. 이는 런타임 다형성을 구현하기 위한 메커니즘으로, 실제 객체의 타입에 따라 메서드 호출이 결정됩니다.
- static 메서드는 컴파일 타임에 클래스의 문맥에서 결정되기 때문에 런타임 다형성을 제공하지 않습니다.
- 오버라이딩은 인스턴스 메서드에서만 적용됩니다. 이는 런타임 다형성을 구현하기 위한 메커니즘으로, 실제 객체의 타입에 따라 메서드 호출이 결정됩니다.
이와 같은 내용에 대해 더 이해를 돕기 위해 유사한 질문과 답변을 찾았습니다:
- 자식 클래스와 protected 메서드에 관한 질문: 질문에서 static 메서드와 인스턴스 메서드의 차이점에 대해 보다 깊이 있는 토론이 진행되었으며, 관련 설명을 확인하실 수 있습니다.
이 링크를 통해 static 메서드가 상속과 오버라이딩에서 어떻게 차이가 있는지, 그리고 자바의 메서드 작동 방식에 대해 명확히 하시면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





