728x90
반응형
2021 2회 정보처리기사 실기 기출문제
문제
다음 Java 소스코드의 알맞은 출력값을 작성하시오.
public class Class01 {
public static void main(String[] args) {
Class01 c1 = new Class01();
Class02 c2 = new Class02();
System.out.println(c1.sum(3, 2) + c2.sum(3, 2));
}
int sum(int x, int y) {
return x + y;
}
}
class Class02 extends Class01 {
int sum(int x, int y) {
return x - y + super.sum(x, y);
}
}
정답
11
반응형
해설
📌 Class01
- Class01에는 두 개의 정수를 더하는 메서드 sum(int x, int y)가 있습니다
int sum(int x, int y) {
return x + y;
}
📌 Class02 : 상속과 메서드 오버라이딩
- Class02는 Class01을 상속받은 자식 클래스입니다.
- Class02의 sum 메서드는 오버라이딩되어 있습니다.
오버라이딩된 메서드는 부모 클래스의 sum 메서드를 호출하기 위해 super 키워드를 사용합니다.- super의 역할
- super는 부모 클래스의 메서드나 멤버 변수를 호출할 때 사용합니다.
- super.sum(x, y)는 부모 클래스인 Class01의 sum 메서드를 호출합니다.
- super의 역할
int sum(int x, int y) {
return x - y + super.sum(x, y);
}
728x90
📌 메서드 호출 과정과 출력값
1️⃣ 첫 번째 메서드 호출: c1.sum(3, 2)
- c1은 Class01 객체입니다.
- 호출된 메서드는 Class01의 sum 메서드이며, 결과는 3 + 2 = 5입니다.
2️⃣ 두 번째 메서드 호출: c2.sum(3, 2)
- c2는 Class02 객체입니다.
- 호출된 메서드는 Class02의 오버라이딩된 sum 메서드입니다.
- 계산 과정:
- x - y는 3 - 2 = 1
- super.sum(x, y)는 부모 클래스 Class01의 sum 메서드를 호출하므로, 결과는 3 + 2 = 5
- 최종 계산: 1 + 5 = 6
3️⃣ 최종 출력값
- c1.sum(3, 2) + c2.sum(3, 2) = 5 + 6 = 11
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] [ Python ] for ... in 반복문과 range() 함수 | 시프트 연산 | 정보처리기사 실기 기출문제 (0) | 2025.01.21 |
---|---|
[정보처리기사] [ C ] 포인터와 배열 | 정보처리기사 실기 기출문제 (0) | 2025.01.21 |
[정보처리기사] static 메소드란? 객체 없이 호출하는 방법 | 정보처리기사 실기 기출문제 (0) | 2025.01.20 |
[정보처리기사] 객체지향 분석 방법론 | 정보처리기사 실기 기출문제 (0) | 2025.01.16 |
[정보처리기사] SQL | JOIN 기본 개념 | 정보처리기사 실기 기출문제 (0) | 2025.01.13 |