코딩일기/자격증

[정보처리기사] [Java] 상속과 오버라이딩, super 키워드 | 정보처리기사 실기 기출문제

jhy_2023 2025. 1. 20. 16:44
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 메서드를 호출합니다.
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
반응형