정보처리기사 실기JavaJava 다형성난이도 4MCQ

정보처리기사 실기 Java 다형성 기출문제 #3890

문제

다음 Java 코드의 출력 결과는?

Java
public class Main{ public static class Parent { public int x(int i) { return i + 2; } public static String id() { return "P";} } public static class Child extends Parent { public int x(int i) { return i + 3; } public String x(String s) { return s + "R"; } public static String id() { return "C"; } } public static void main(String[] args) { Parent ref = new Child(); System.out.println(ref.x(2) + ref.id()); } }

① 4P ② 5P ③ 5C ④ 4C

정답

2

해설

정답: 2. 인스턴스 메서드 x(int)는 오버라이딩되어 Child의 메서드가 실행되므로 2+3=5이다. static 메서드 id()는 참조 타입 Parent 기준으로 호출되어 P가 붙는다.

오답 풀이

  • 1번: x(int)를 Parent 기준으로 계산한 값이다.
  • 2번: 동적 바인딩과 static 메서드 숨김 규칙을 모두 반영한 결과이다.
  • 3번: static 메서드도 동적 바인딩된다고 잘못 본 결과이다.
  • 4번: x와 id 모두 잘못 판단한 값이다.

보충 개념 Java에서 오버라이딩된 인스턴스 메서드는 실제 객체 타입 기준으로 실행된다. static 메서드는 오버라이딩이 아니라 숨김이며 참조 타입 기준으로 결정된다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] Java 다형성 Java 기출 #3890 | 문어CBT