SQLD프로그래밍 언어 활용Java 오버로딩난이도 3MCQ

SQLD Java 오버로딩 기출문제 #4087

문제

아래 Java 코드의 실행결과로 올바른 것은 무엇인가?

Java
class A{ public int func(int a, int b){ return a+b; } } class B extends A{ public double func(double a, double b){ return a-b; } } public class Main{ public static void main(String[] args) { int a=10, b=5; B x = new B(); System.out.println(x.func(a, b)); } }

① 10 ② 15 ③ 5 ④ 20

정답

2

해설

정답: 2. 인수 a, b가 int이므로 상속받은 func(int, int)가 호출되어 10+5=15가 출력된다.

오답 풀이

  • 1번: 10은 계산 결과가 아니다.
  • 2번: A의 int 매개변수 메서드가 호출되어 15가 맞다.
  • 3번: B의 double 매개변수 메서드가 호출되어 뺄셈한다고 본 값이다.
  • 4번: 코드상 곱셈이나 다른 연산이 없다.

보충 개념 매개변수 타입이 다르면 오버라이딩이 아니라 오버로딩이며, 호출 시 가장 적합한 시그니처가 선택된다.

SQLD 시험 준비 가이드

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

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

[SQLD] Java 오버로딩 프로그래밍 언어 활용 기출 #4087 | 문어CBT