• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

다형성 질문입니다

23.12.14 17:01 작성 조회수 153

1

Parent parent = new child(); 라고하면 parent가 child의 기능을 가질수 있다는건데,

new child()는 child()의 객체의 참조값을 가지니까 parent가 접근할수있다는것을 이해했는데

parent는 생성자를 안만들어줬는데도 접근할수가있나요?

Parent parent = new Parent(); 같이 객체를 만들어줬을때 저장이되면서 참조값을 parent에 전달한다고 알고있는데 Parent parent = new child(); 는 child의 참조값만 알고 Parent는 모르는거아닌가요? 상속이라고해도 parent는 객체를 안만들어줬지 않나요?

답변 1

답변을 작성해보세요.

1

안녕하세요. 박민성님

Q1: Parent parent = new child(); 라고하면 parent가 child의 기능을 가질수 있다는건데,

new child()는 child()의 객체의 참조값을 가지니까 parent가 접근할수있다는것을 이해했는데

parent는 생성자를 안만들어줬는데도 접근할수가있나요?

A1: 상속 관계의 경우 자식을 new로 만들면 부모도 메모리 상에 함께 생성됩니다.

그리고 다음 강의를 복습해보시면 심지어 부모의 생성자도 반드시 호출되는 것을 확인할 수 있습니다.

  1. 상속 -> super - 생성자

 

Q2: Parent parent = new Parent(); 같이 객체를 만들어줬을때 저장이되면서 참조값을 parent에 전달한다고 알고있는데 Parent parent = new child(); 는 child의 참조값만 알고 Parent는 모르는거아닌가요? 상속이라고해도 parent는 객체를 안만들어줬지 않나요?

A2: new Child를 생성하면 참조는 하나이지만 그 안에 Parent도 함께 생성됩니다. 상속 관계에서는 부모도 함께 만들어줍니다. 다음 내용을 복습해주세요 🙂

  1. 상속 -> 상속과 메모리 구조

감사합니다.