해결된 질문
작성
·
331
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요. Object복습하다가 Parent와 child 클래스를 다형성 해보자 해서 만들었는데, 하다 보니까,
원래 코드는 (이런식) 상속 관계 - Object - Parent - Child
if (object instanceof Parent parent) {
parent.parentMethod();
} else if (object instanceof Child child) {
child.childMethod();
}
else - if문에서 노란줄이 떠서
이런식 으로 만들었는데 이런 식의 코드가 실무에서 있는지 갑자기 궁금해져서 질문을 남깁니다.
답변 부탁 드립니다.
답변 1
0
Condition 'object instanceof Child child' is always 'false' 라고 뜨네요(사진 첨부합니다.)
이 코드를 보니까 child에 있는 메서드가 실행이 안되서 이렇게 만든 것(if문안에 if) 같네요
안녕하세요 생각하는자님. 문구를 보니 이유를 찾았네요.
Child는 다형성에 의해 Parent 라고 할 수 있습니다.
즉, 30번째 라인에서 이미 false 였다면, 32번째 라인은 시도해보지 않아도 false 가 됩니다.
조건문의 순서를 바꾸어 먼저 Child의 인스턴스인지 확인하고, else if 절에서 Parent의 인스턴스인지 확인하다면 경고문구가 나오지 않을거에요.
감사합니다.
지금 시간이 안되서 저녁에 어떤 경고가 떳는지 보여 줄게여.