상속 관련해서 질문 있습니다.
441
작성한 질문수 4
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
다형성 오버라이딩 까지 강의를 보고 질문 드립니다.
지금까지 상속 관계에 대해 배웠을 때
처음에 든 생각은 상속이 tree 관계도를 만든다고 생각했습니다.
(예를 들어서 부모에게 자식이 여러 명 있을 수 있는 것처럼요)
그런데 수업에서 배운 내용을 보니
힙 영역에서 한 인스턴스 안에 부모가 한 명 있고 자식이 둘 이상인 경우는 존재하지 않는 것처럼 보였습니다.
물론 class 영역에서 한 부모를 여러 자식이 상속하는 경우는 가능하겠지만 instance를 만들 때는 자식 인스턴스를 만들 때마다 부모가 복제되서 생기는 것 같았습니다.
매소드 오버라이딩 부분을 보니까 한 인스턴스 안에 부모가 있을 때 자식이 여럿 있으면 안 될 것 같다는 확신이 들었습니다. 그게 맞다면 어느 자식의 method로 오버라이딩 되어야 할 지 정하기 어렵기 때문입니다.
만약 제가 데이터를 저장할 때
어떤 사람의 인적 정보를 person class에 저장하고
사람의 직업이 여러 개일 수 있으니까 직업들을 job1, job2 class라고 정의한다면
-----------------------------------
| person 부모class - job 1 자식 class
| - job 2 자식 class
-----------------------------------
이런 식으로 한 인스턴스 안에 데이터를 저장하는 것이 메모리를 효율적으로 쓰는 것이라고 생각했는데 java는 이런 걸 지원하지 않는 것처럼 보였습니다.
제 생각이 맞는지 궁금합니다.
답변 1
0
안녕하세요. Bugeon Jo님, 공식 서포터즈 코즈위버입니다.
상속과 인스턴스 힙 메모리에 대한 생각은 맞습니다.
여기서 생각해 보아야 하는 부분은 Job이 클래스로 관리해야 하는가 인데요, 코드처럼 사용하는 데이터라면 자바에서는 Enum을 사용하여 처리하는 경우가 일반적입니다.
'한 사람이 여러 직업을 가질수 있다'를 자바 코드로 표현하는 방법은 아래와 같습니다.
public class Person {
JobCode[] jobs = []; // 이런식으로 배열로 표현하거나
List<JobCode> jobs = new ArrayList(); // 나중에는 Collection 프레임워크를 사용.
}
enum JobCode {
STUDENT,
TEACHER,
FARMER
}
물론 Job이 단순 코드가 아니라 클래스 레벨로 상승하는 경우에도 배열 혹은 콜렉션을 이용하여 일대다, 다대다를 표현합니다.
감사합니다.
질문있습니다
0
30
1
1번 문제 질문입니다.
0
35
1
음악플레이어 문제 중 코드질문
0
28
1
9장 상속 문제와 풀이 질문
0
39
1
강의 자료에 사소한 오타가 있습니다.
0
50
2
매서드 참조값 반환??
0
67
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
72
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
85
1
공부방법
0
77
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
82
1
static method 질문
0
67
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
98
1
Method1에서 Student 객체
0
74
1
3강 18. null 질문
0
69
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
77
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
97
1
문의
0
104
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
90
1
상속과 그에 따른 메모리 구조 질문
0
62
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
74
1
수강기한
0
136
1
기본편 객체지향 프로그래밍에 대한 정의
0
88
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
87
1
추가 지식 학습
0
153
2





