Java출력 결과어려움 · 30점#오버로딩#오버라이딩#상속#다형성

37. 오버로딩과 오버라이딩의 선택 시점

다음 Java 프로그램의 실행 결과를 쓰시오.

1class Shape {
2 String draw(Shape s) {
3 return "S(S)";
4 }
5
6 String draw(Circle c) {
7 return "S(C)";
8 }
9}
10
11class Circle extends Shape {
12 String draw(Shape s) {
13 return "C(S)";
14 }
15}
16
17public class Main {
18 public static void main(String[] args) {
19 Shape a = new Circle();
20 Circle b = new Circle();
21 Shape c = new Shape();
22 String r1 = a.draw(a);
23 String r2 = a.draw(b);
24 String r3 = c.draw(a);
25 String r4 = b.draw((Shape) b);
26 System.out.println(r1 + " " + r2);
27 System.out.println(r3 + " " + r4);
28 }
29}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.