정보 처리기사 24년 1회 10번 문제
2024. 7. 9. 12:57ㆍ자격증 연습/정보처리기사 실기 대비 - 문제풀이
class Parent {
int x, y;
Parent(int x, int y) { ①
this.x=x;
this y=y;
}
int getT() { ②
return x*y;
}
}
class Child extend Parent {
int x;
Child (int x) { ③
super(x+1, x);
this.x=x;
}
int getT(int n){ ④
return super.getT()+n;
}
}
class Main {
public static void main(String[] args) { ⑤
Parent parent = new Child(3); ⑥
System.out.println(parent.getT()); ⑦
}
}
소스 코드의 파일은 main 에서 부터 시작합니다.(5번)
그러므로 객체 생성인 Parent parent = new Child(3); 이 먼저 시행됩니다.(6번)
Parent parent = new Child(3); 는 부모클래스 객체 parent 는 자식 클래스를 인스턴스로 가지므로 다음 구문은 자식 클래스로 넘어갑니다.
그다음 자식 클래스의 child 생성자를 int 형 변수 3을 인수로 가지는 생성자를 가지므로 child 생성자가 실행됩니다.(3번)
child 생성자 내부에서
super(x+1, x); 로 부모 클래스의 생성자를 호출하였으니 부모 클래스의 생성자(1번)를 호출하게 됩니다.
매개변수 2개를 가지는 부모 클래스의 parent 생성자를 호출한다음 this 로 변수 x을 초기화 해줍으로써
Parent parent = new Child(3); 의 과정이 끝이난다음
System.out.println(parent.getT()); (7번)을 실행합니다.
parent.getT()은 부모 메서드를 호출니다. (2번)
시그니처가 자식 클래스의 getT(int n) 와 다르므로 오버라이딩은 일어나지 않습니다.
시그니처: 매개변수의 타입과 순서
실행 순서 : 5 → (6) → (3 ) → (1) → (7) → (2)
'자격증 연습 > 정보처리기사 실기 대비 - 문제풀이' 카테고리의 다른 글
정보처리기사 24년 1회 13번 문제 (0) | 2024.07.09 |
---|---|
정보처리 기사 24년 1회 12번 문제 (0) | 2024.07.09 |
정보처리사 24년 1회 9번 문제 (0) | 2024.07.09 |
정보처리 기사 24년 1회 4번 문제 (0) | 2024.07.09 |
정보처리기사 24년 1회 2번 문제 (0) | 2024.07.07 |