책 내용 질문하기
2권 Section 124 기출 따라잡기 3번 문제 (195p)
도서
2023 시나공 정보처리기사 실기
페이지
195
조회수
155
작성일
2024-04-19
작성자
최*예
첨부파일
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 20:05:14

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

행복한 하루되세요 :)

  • 관리자
    2024-04-20 20:05:14

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

     

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

     

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

     

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

     

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

     

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

     

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

     

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

     

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

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.