해결된 질문
작성
·
63
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 토니 퍼거슨님.
질문해주신 내용에서 ‘재정의’는 Java에서의 메서드 오버라이딩(Overriding)을 뜻하는 것으로 보입니다. 자식 클래스에서 부모 클래스의 메서드를 동일한 시그니처로 구현할 때, 자식 클래스의 인스턴스에서는 자식 클래스에 정의된 메서드가 호출되는 것이 맞습니다. 이것이 다형성(polymorphism)의 원리입니다.
질문하신 sum
메서드는 자식 클래스에서 재정의되었으므로 인스턴스가 자식 클래스일 경우 자식 클래스의 sum
메서드가 호출되어야 합니다. 업캐스팅
은 부모 타입의 참조 변수로 자식 객체를 가리키는 경우에 해당하며, 이 경우도 부모 클래스에 없는, 자식 클래스에서만의 메서드는 호출되지 않지만, 부모 클래스에 있는 메서드와 동일한 자식 클래스의 오버라이딩된 메서드는 호출됩니다.
따라서, 코드에서 sum
메서드가 자식 클래스에서 재정의되었고 호출하는 문맥이 자식 클래스일 경우라면, 자식의 sum
메서드를 따르는 것이 맞습니다.
관련 질문 URL을 살펴보고 더 다양한 사례와 설명을 이해하실 수 있습니다:
- 자바 상속 관련 질문
- 3분02초 상속부분 다시 공부하다가 멘탈이 터졌습니다.
질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0