정보처리기사 실기JavaJava - 상속과 오버라이딩난이도 3SHORT_ANSWER

정보처리기사 실기 Java - 상속과 오버라이딩 기출문제 #167

문제

다음 Java 코드의 실행 결과를 쓰시오.

Java
class A { int x = 10; int getX() { return x; } } class B extends A { int x = 20; int getX() { return x; } } public class Main { public static void main(String[] args) { A a = new B(); System.out.println(a.x + " " + a.getX()); } }

정답

10 20

1020

해설

Java에서 필드는 참조 변수의 선언 타입(A)을 기준으로 정적 바인딩되므로 a.x는 A의 x인 10이다. 메서드는 실제 객체(B)를 기준으로 동적 디스패치되므로 a.getX()는 B의 getX()가 호출되어 20을 반환한다.

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

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