강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

티티티님의 프로필 이미지
티티티

작성한 질문수

김영한의 실전 자바 - 기본편

상속과 메서드 오버라이딩

static 상속

해결된 질문

작성

·

86

0

[질문 내용]

강의 17:01, 메서드 오버라이딩은 인스턴스 메서드에 해당하는 내용으로 static 메서드는 해당하지 않는다고 하셨습니다. 별도로 예제를 작성해서 테스트해보았는데, 자식 클래스에서 부모 클래스의 클래스 메서드를 호출할 수 있었습니다.

 

static 메서드 역시 상속은 되지만 오버라이딩 대상이 되지 않는다고 이해하면될까요?

 

감사합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 티티티님.

static 메서드와 상속의 관계에 대해 궁금하신 점을 잘 이해하였습니다. 관련된 기초 개념을 간단히 설명드리자면 다음과 같습니다:

  1. static 메서드:

    • static 메서드는 특정 클래스에 속하며, 인스턴스가 아닌 클래스 자체로 호출됩니다. 그래서 인스턴스의 문맥에서 동작하는 오버라이딩의 대상이 되지 않습니다.
    • 자식 클래스에서도 부모 클래스의 static 메서드를 호출할 수 있지만, 이는 단순히 부모 클래스의 메서드를 자식 클래스 문맥 안에서 사용할 수 있다는 의미입니다. 상속처럼 보일 수 있지만, 실제로는 각 클래스의 메서드로 별도로 존재하는 것입니다.
  2. 오버라이딩(Overriding):

    • 오버라이딩은 인스턴스 메서드에서만 적용됩니다. 이는 런타임 다형성을 구현하기 위한 메커니즘으로, 실제 객체의 타입에 따라 메서드 호출이 결정됩니다.
    • static 메서드는 컴파일 타임에 클래스의 문맥에서 결정되기 때문에 런타임 다형성을 제공하지 않습니다.

이와 같은 내용에 대해 더 이해를 돕기 위해 유사한 질문과 답변을 찾았습니다:

이 링크를 통해 static 메서드가 상속과 오버라이딩에서 어떻게 차이가 있는지, 그리고 자바의 메서드 작동 방식에 대해 명확히 하시면 좋겠습니다.

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

티티티님의 프로필 이미지
티티티

작성한 질문수

질문하기