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

디와이님의 프로필 이미지
디와이

작성한 질문수

김영한의 실전 자바 - 기본편

다형적 참조시에 생성자 호출 질문

작성

·

118

0

Parent p = new Child(); 이런 형식으로

부모는 자식을 품을 수 있으니깐 저렇게 선언하면

Child생성자도 호출이 되는 것 같더라고요.

 

메서드들은 오버라이딩이 된 것이 아닌 이상 자식 메서드를 사용할 수 없는데

생성자는 생성시에는 자식도 호출이 된다고 생각해야하는걸까요?

 

답변 1

0

안녕하세요. 디와이님, 공식 서포터즈 y2gcoder입니다.

객체 생성 시에 타입을 기준으로 생각하시면 좋을 것 같습니다!

Parent p = new Child();

에서 객체 생성하는 코드는 new Child()입니다.

즉 Child 타입으로 Child의 생성자를 이용해서 생성한 객체를 Parent 타입의 변수 p에 대입해주는 것입니다!

이 부분에 대해서 고민해보시면 좋을 것 같습니다

 

감사합니다.

디와이님의 프로필 이미지
디와이

작성한 질문수

질문하기