상속시 데이터 타입이 가지는 의미
227
작성한 질문수 2
① ParentClass를 상속받고 있는 FirstChildClass의 경우, 생성자 호출시 메모리상에서 어떤 과정을 거치나요?
ParentClass constructor가 먼저 호출되고 그 후 FirstChildClass constructor가 호출되는데 메모리 주소를 어떻게 레퍼런스 하고 있나요?
② 위와 마찬가지로 FirstChildClass가 ParentClass를 상속받고 있을 때,
FirstChildClass fch1 = new FIrstChildClass();를 통해 생성된 객체(fch1)와
ParentClass fch2 = new FirstChildClass();를 통해 생성된 객체(fch2)의 차이가 무엇인가요?
(* 인스턴스명.getClass().getName()을 통해 클래스명을 확인했을 때, 둘 다 FirstChildClass로 확인되었습니다)
제가 이해되지 않는 부분은 다음 사실입니다.
객체생성시 데이터타입을 FirstChildClass로 정의했던 fch1의 경우, FirstChildClass에서만 정의한 method(getOpenYear())를 호출할 수 있었습니다. 반면 객체생성시 데이터타입을 ParentClass로 정의했던 fch2의 경우, ParentClass에서 동일한 이름의 method(getOpenYear())를 정의하고 그것을 FirstChildClass내에서 override하여야 실행이 가능했습니다.
두 객체가 어떠한 차이가 있어 이러한 현상이 일어나는지에 대해 자세히 설명해주시면 감사하겠습니다.
답변 2
0
다형성이란 개념이에요 업캐스팅 다운캐스팅 이건 메모리를 보면서 공부해야 이해가 빨리되는데요 구글에 업캐스팅 치시고 상속관계에서 메모리에 어떻게 저장되는지 알면 좋을듯 싶네요
서식 문자 실습 중 콘솔 결과값 글자 깨짐
0
556
1
19-4 : super 클래스 부분에서
0
378
1
비트를 뒤에서부터 읽으셔서 궁금해서 질문드립니다!
1
650
1
배열예제 오류
0
389
1
GC 동작시기가 궁금합니다.
0
374
0
자바 18버전으로 다운받아도 되나요?
0
533
1
클래스 생성과 관련하여 질문 있습니다
0
265
0
형변환시 신규 메모리가 할당 되는지
0
349
0
Socket을 null로 처음에 선언해주는 이유가 뭘까요?
0
302
0
반환값 용도
0
337
1
블로그 작성
0
316
0
삼항연산자 잘못 적으셨어요
0
264
1
어느것부터 다운로드를 해야하는지 좀 막히네요
0
352
1
inputStream.read()질문드립니다
0
325
1
System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?
0
366
1
<for문> 예시 작성시 에러발생 질문드립니다
0
577
2
이해가 안가는 부분이 있습니다.. 선생님들.. 도와주세요..!!
0
314
1
인터페이스를 사용 하는 이유가 무엇인가요?..
0
737
1
혹시 영상 만드시고 업로드 전 확인 안하시나요..? 잡음..
1
304
1
이해가 안가는게 있습니다
0
310
2
jdk-16.0.1은 jre가 없이 jdk만 설치되는게 정상인가요?
0
497
1
메모장을 실행하실때
0
312
1
강의 중 말씀해주신 형변환된 코드가 알고 싶어요.
0
230
2
메모장이안돼요 처음에
0
276
0





