• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

상속에 따른 객체와 메모리 구조에 대해 질문드립니다.

24.04.27 14:31 작성 조회수 86

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

 

안녕하세요. 이번 강의를 완강 하다가 궁금한 점이 생겨서 질문 드립니다.

위 그림에 따라

인스턴스가 생성되면 인스턴스에 있는 객체들의 메서드는 메서드 영역에서 공유되기 때문에 인스턴스가 100개여도 메서드가 100개가 되진 않는다고 설명 해주셨는데요.

하지만 상속 단계에서 이 그림을 보면

메서드가 메서드 영역에 있는 것이 아니라 각각의 인스턴스가 각자의 메서드를 가지고 있는 것으로 보이는데 제가 이해한게 맞을까요?

제가 이해한 바로는 상속받는 부모 메서드 까지 포함해서 만약 인스턴스가 100개라면 메서드도 따라서 100개인지 궁금합니다.

 

바쁘신 와중에도 답변 주시면 감사하겠습니다!

답변 2

·

답변을 작성해보세요.

0

안녕하세요. vitagi님

생각하는자님께서 잘 답변해주셨는데요.

상속관계의 경우에도 본인 클래스를 알 수 있기 때문에 본인 클래스에 있는 메서드를 사용합니다 🙂

따라서 메서드는 동일하게 1개만 만들어집니다.

감사합니다.

0

생각하는자님의 프로필

생각하는자

2024.04.27

2번째 그림을 잘못 이해하신것 같습니다.

각각의 인스턴스가 각자의 메서드를 가지고 있는 것으로 보이는데

라는 말을 하였는데.

각각의 인스턴스가 아니라 하나의 인스턴스(new K3Car -> k3car ,car이름 밑에를 보십시요) 이고

K3Car안에 car도 있다는 것을 설명하기 위해서 손쉽게 설명한것입니다.

super()로 인해 부모를 묵시적으로 생성한다는 사실을 잊으신것 같습니다.

super()가 없지만 자식은 부모를 생성하고 있다. 라는 것을 기억하시길 바랍니다.

제 말이 틀리다면 공식서포터즈 님들이 설명해주실것입니다.