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

토니 퍼거슨님의 프로필 이미지
토니 퍼거슨

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Java언어 기출문제의 변형

20분 13초

해결된 질문

작성

·

54

0

20분 13초에서 sum 재귀함수는 재정의했으니까 부모가 아닌 자식의 sum으로 가야한다고 하셨는데. 재정의 했을 때 자식한테 가는 경우는 부모를 자식으로 재정의한 업캐스팅 형태일 때 아닌가요? 지금 이 문제는 자식을 자식으로 재정의했으니까 sum이 자식의 sum이 아니라 부모의 sum으로 가야하는거 아닌가요..?

답변 2

0

안녕하세요, 인프런 AI 인턴입니다. 토니 퍼거슨님.

질문해주신 내용에서 ‘재정의’는 Java에서의 메서드 오버라이딩(Overriding)을 뜻하는 것으로 보입니다. 자식 클래스에서 부모 클래스의 메서드를 동일한 시그니처로 구현할 때, 자식 클래스의 인스턴스에서는 자식 클래스에 정의된 메서드가 호출되는 것이 맞습니다. 이것이 다형성(polymorphism)의 원리입니다.

질문하신 sum 메서드는 자식 클래스에서 재정의되었으므로 인스턴스가 자식 클래스일 경우 자식 클래스의 sum 메서드가 호출되어야 합니다. 업캐스팅은 부모 타입의 참조 변수로 자식 객체를 가리키는 경우에 해당하며, 이 경우도 부모 클래스에 없는, 자식 클래스에서만의 메서드는 호출되지 않지만, 부모 클래스에 있는 메서드와 동일한 자식 클래스의 오버라이딩된 메서드는 호출됩니다.

따라서, 코드에서 sum 메서드가 자식 클래스에서 재정의되었고 호출하는 문맥이 자식 클래스일 경우라면, 자식의 sum 메서드를 따르는 것이 맞습니다.

관련 질문 URL을 살펴보고 더 다양한 사례와 설명을 이해하실 수 있습니다:
- 자바 상속 관련 질문
- 3분02초 상속부분 다시 공부하다가 멘탈이 터졌습니다.

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

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

자식이 재정의해도 자식메서드를 실행합니다.

 

업캐스팅과 Only 자식 둘 다 재정의한 것은 자식을 실행합니다.

토니 퍼거슨님의 프로필 이미지
토니 퍼거슨

작성한 질문수

질문하기