2023년 4월 시행한 시험 20번 문제 질문드립니다.
이 문제에서 처음에 child를 호출했으니까 child로 올라가서 실행해야되는데 부모 생성자를 호출하는 코드가 묵시적으로 들어있어서 부모 클래스를 호출한다
라고 설명해주셨는데 이게 생성자 문제에서만 그런건가요? 오버로딩 오버라이딩 문제는 부모 클래스를 호출 안하는거같던대
오버로딩 오버라이딩은 그냥 바로 문제 따라 가는거고 오버 로딩, 라이딩이 아닌 문제는 무조건 부모 클래스를 호출 해야되는 건가요?
안녕하세요 길벗수험서 운영팀입니다.
오버로딩과 오버라이딩과 관계없이 상속받은 클래스를 대상으로 생성자를 호출하는 경우 컴파일 과정 시 자동으로 상위 클래스의 생성자를 호출하는 과정이 추가됩니다.
(생성자가 명시적으로 선언되었든 말든, 또는 생성자 내에 코드가 있든 말든 관계 없이) 생성자를 호출한다는 의미는 클래스에 해당하는 메모리 공간을 배정한다는 의미이고,
자식 클래스는 기본적으로 부모 클래스를 기반으로 하기 때문에 자신을 메모리에 배정하기 전 부모 클래스를 먼저 메모리에 배정합니다.
행복한 하루되세요 :)
-
관리자2024-04-04 13:58:13
안녕하세요 길벗수험서 운영팀입니다.
오버로딩과 오버라이딩과 관계없이 상속받은 클래스를 대상으로 생성자를 호출하는 경우 컴파일 과정 시 자동으로 상위 클래스의 생성자를 호출하는 과정이 추가됩니다.
(생성자가 명시적으로 선언되었든 말든, 또는 생성자 내에 코드가 있든 말든 관계 없이) 생성자를 호출한다는 의미는 클래스에 해당하는 메모리 공간을 배정한다는 의미이고,
자식 클래스는 기본적으로 부모 클래스를 기반으로 하기 때문에 자신을 메모리에 배정하기 전 부모 클래스를 먼저 메모리에 배정합니다.
행복한 하루되세요 :)