인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

wnsghdnjs123님의 프로필 이미지

작성한 질문수

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

(기출) 2024년 1회 코드해석 문제

업캐스팅

해결된 질문

작성

·

53

0

image.png

//7에서 만약에 자식 클래스에도 getA() 메서드가 있지만 parent클래스를 명시해서 호출 한다면 parent class의 getA()를 호출했겠죠? 업캐스팅 되면 자식클래스의 재정의된 메서드로 가는거지만 parent클래스를 명시한다면 parent 클래스를 사용할 수 있는건가요?

답변 2

0

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

안녕하세요, 질문을 주실 때는 꼭 영상 내의 시간 몇 분 몇 초를 명시 부탁드립니다.

 

parent 클래스를 명시한다는 것이 무슨 의미이실까요?

업캐스팅이 된 상태에서 parent 클래스를 명시한다는 것이 무슨 의미인지 모르겠습니다.

 

Parent class에서 정적 메서드를 호출한다는 의미일까요?

0

인프런 AI 인턴님의 프로필 이미지

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

자바에서의 업캐스팅과 메서드 호출에 대한 질문을 해주셨습니다. 업캐스팅 상태에서 메서드 호출을 어떻게 처리하는지 설명드리겠습니다.

업캐스팅과 메서드 호출

  1. 업캐스팅의 개념:

    • 부모 클래스 타입의 참조 변수를 통해 자식 클래스의 객체를 참조할 수 있게 하는 것.
    • 이를 통해, 코드의 유연성과 다형성을 활용할 수 있습니다.
  2. 메서드 호출 시:

    • 업캐스팅되면 자식 클래스에서 재정의된 메서드를 호출하게 됩니다. 이는 객체의 실제 타입에 따른 동작(다형성)입니다.

하지만, 질문에 언급한 것처럼 명시적으로 부모 클래스의 메서드를 호출하려고 할 경우, 부모 클래스의 메서드를 사용할 수 있습니다. 예를 들어:

Parent parent = new Child();
parent.getA(); // 자식 클래스의 getA()가 호출됩니다.
// 하지만 부모 클래스의 메서드를 명시적으로 호출하고자 한다면
((Parent)parent).getA(); // 이와 같은 방식으로 부모의 getA()를 호출할 수 있습니다.

중요 포인트

  • 업캐스팅 시 참조 변수는 부모 타입이지만, 실제로 호출되는 메서드는 객체의 타입에 따라 결정되는 다형성을 고려해야 합니다.
  • 부모 클래스를 명시적으로 지정하여 메서드를 호출할 경우, 부모 클래스의 메서드로 접근할 수 있습니다. 이를 통해 메서드 오버라이딩된 상태에서도 부모의 메서드를 호출할 수 있습니다.

이러한 부분들은 자바의 상속과 다형성에서 중요한 개념이니 관련된 실습을 통해 이해를 깊이 하시는 것을 추천드립니다.

질문과 관련된 더 많은 예제와 설명을 보시려면 아래의 링크를 참고하시면 좋을 듯합니다:

  1. 자바 기출변형 문제 질문
  2. 상속과 메서드 오버라이딩에 대한 깊이 있는 이해

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