• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

instanceof 강의를 들으며 궁금한 점이 있습니다

24.02.20 12:56 작성 조회수 142

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
강의에서 Parent parent를 안전하게 다운캐스팅하기 위하여

if (parent instanceof Child)를 사용하여서

parent가 new Child()가 맞는지 확인하는 것으로 이해했습니다.

 

그 후 강의 중에 "참고로 instanceof 키워드는 오른쪽 대상의 자식 타입을 왼쪽에서 참조하는 경우에도 true 를 반환한다" 라고 하며 parent instanceof Parent 를 예시로 보여주었습니다.

 

그런데 강의 중 예시를 보았을 때 안전한 다운캐스팅을 위해선 parent instanceof Child를 사용해야 하는것으로 이해하였는데,

혹시라도 parent instanceof Parent가 특별히 사용되져야하는 다른 예시가 있을까요?

 

글의 요지는 그냥 이런 방식도 가능하다라는 의도로

"참고로 instanceof 키워드는 오른쪽 대상의 자식 타입을 왼쪽에서 참조하는 경우에도 true 를 반환한다"

라는 내용을 설명해주신건지

아니면 실제 코드를 구성할 때 따로 필요한 용도가 있는지 궁금한 것 입니다.

답변 1

답변을 작성해보세요.

1

David님의 프로필

David

2024.02.20

안녕하세요. 이훈님, 공식 서포터즈 David입니다.

다운캐스팅에 초점을 두기보다는 instanceof를 통해 어떤 타입의 인스턴스인지를 알 수 있다는 것에 초점을 두시면 좋을 것 같습니다. instanceof 사용 예시 중 하나로 특정 타입의 인스턴스인지 판단하여 다운캐스팅 하는 것을 보여드린 것입니다. 꼭 다운캐스팅이 아니라도 특정 타입에 대해 처리해줘야 한다면 instanceof를 사용할 수도 있습니다.

감사합니다.