부모-자식 오버라이딩 시 this의 의미

김민지·2022년 12월 15일
0

자바

목록 보기
13/21

질문

부모클래스에 A,B라는 메서드가 잇고 자식은 이를 둘다 오버라이딩햇어요
자식의 A메서드에서
부모의 A메서드를 호출했어요
근데 부모의 A메서드 내부에선 B를 호출해요.
그러면 부모클래스의 B가 호출되는거아닌가요?
자식꺼가 호출되네요......??



지금 부모 클래스에서 B를 호출하고 있는데 이게 사실 this.B()를 호출하는거잖아요 그런데 this가 가리키는 것은 "현재 실행 중인 인스턴스"를 의미한대요. 인스턴스는 chlld를 넣어줬으니 this는 child를 가리키게 되고, 그래서 자식의 B가 출력이 되는거죠

자식 -> 부모쪽으로 올라가면서 찾는다. 일단 B메서드드가 자식에있으니 이걸호출하는거고 만약에 this.c를하게되면 자식에 없으니 부모에서 찾아서 부모것을 호출한다


출처
https://velog.io/@woodstock1993/Override-%EC%99%80-%EA%B0%80%EC%83%81%ED%95%A8%EC%88%98-%ED%85%8C%EC%9D%B4%EB%B8%94

profile
안녕하세요!

0개의 댓글