시나공 IT
험에
오는 것만
부한다!

통합검색

1:1 질문하기

제목 2권 Section 124 기출 따라잡기 3번 문제 (195p)
자격증 정보처리 기사 실기
도서/쪽 페이지 2023 시나공 정보처리기사 실기 / 195쪽
등록일 2024-04-19 조회 39
작성자 최*예
class Parent {
    int compute(int num) {
        if(num <= 1) return num;
        return compute(num - 1) + compute(num - 2);
    }
}

class Child extends Parent {
    int compute(int num) {
        if(num <= 1) return num;
        return compute(num - 1) + compute(num - 3);
    }
}

public class Main {
    public static void main(String[] args) {
        Parent obj = new Child();
        System.out.print(obj.compute(4));
    }
}


안녕하세요.

3번 문제 코드 중 Parent obj = new Child(); ​에서 형 변환이 발생했다는 건 해설을 읽어서 이해했는데요.
이 부분을 Child obj = new Child(); 로 작성해도 올바른가요?
첨부파일
  • 첨부파일 없음
제목 답변입니다.
등록일 2024-04-20

안녕하세요 길벗수험서 운영팀입니다. 

 

회원님께서 말씀하신것처럼  Child obj = new Child(); 이렇게 작성하면 오류가 발생합니다.

 

해당 코드의 경우 부모 클래스와 자식 클래스가 있고 상속 관계에 있습니다.

 

compute( ) 메소드의 경우 자식 클래스에서 재정의되었습니다.

 

해당 코드의 경우 반드시 객체 변수를 선언할때 형 변환이 발생하도록

 

[부모클래스명] [객체변수명] = new [자식클래스생성자( )]  형식으로 사용해야 오류가 발생하지 않습니다 

 

본 문제의 경우 상속에 대해 알고있는지, 객체변수 선언시 형변환에 대해 알고있는지, 

 

재정의에 대해 알고 있는지에 대한 내용을 코드로 만들어 문제를 출제한것입니다.

 

열심히 공부하셔서 합격하시길 기원하겠습니다.  

 

행복한 하루되세요 :)

첨부파일
  • 첨부파일 없음