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

ariel123님의 프로필 이미지
ariel123

작성한 질문수

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

업캐스팅 (부모 형태, 자식 생성자)

업캐스팅 7분 째

해결된 질문

작성

·

117

0

b.paint 실행시 sup.draw가실행될 땨 부모의 draw가 싷행되서 B가찍히고 그다음. draw()가 실행되자나요

이때이게왜자식의. draw가실행되는건지. 모르겠에요. 부모의 생성자가실행되는거라서 B가찍히고 부모의생성자안에 draw()도 포함되는거니까 부모의 draw()가 실행되는게아닌ㄱ요?

답변 1

0

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

부모와 자식이 똑같은 이름의 함수(메서드)를 가지고 있을 때는, 부모에서 실행될 때도 자식에 있는 것을 실행합니다.

만약에 자식에 똑같은 이름이 아닌 draw2 이런 식으로 되어있었다면 자식 것을 실행하지 않습니다.

그게 부모 측에 있었다고 하더라도 자식 것을 이용합니다.

이것을 오버라이딩(override, 재정의)하고 있다고 표현합니다.

 



다만, 해당 메서드가 static이 붙은 정적 메서드인 경우에는 재정의 된 것을 실행하지 않습니다.

이를 하이딩(Hiding)이라고 합니다.

 

이해에 도움이 되셨을까요?

ariel123님의 프로필 이미지
ariel123

작성한 질문수

질문하기