Java빈칸 채우기보통 · 20점#추상 클래스#상속#오버라이딩#다형성

59. 템플릿 메서드로 요리 순서 정하기

다음 Java 프로그램의 실행 결과가 첫 줄 "준비-끓이기1-끓이기2", 둘째 줄 "씻기-자르기-섞기-자르기"가 되도록 빈칸 ①에 들어갈 키워드와 빈칸 ②에 들어갈 메서드 이름을 쓰시오.

1( ① ) class Recipe {
2 final void cook() {
3 System.out.print(prepare());
4 for (int i = 1; i <= steps(); i++) {
5 System.out.print("-" + step(i));
6 }
7 System.out.println();
8 }
9
10 String prepare() {
11 return "준비";
12 }
13
14 int steps() {
15 return 2;
16 }
17
18 abstract String step(int i);
19}
20
21class Soup extends Recipe {
22 String step(int i) {
23 return "끓이기" + i;
24 }
25}
26
27class Salad extends Recipe {
28 String prepare() {
29 return "씻기";
30 }
31
32 int steps() {
33 return 3;
34 }
35
36 String step(int i) {
37 return i % 2 == 0 ? "섞기" : "자르기";
38 }
39}
40
41public class Main {
42 public static void main(String[] args) {
43 Recipe[] list = {new Soup(), new Salad()};
44 for (Recipe r : list) {
45 r.( ② )();
46 }
47 }
48}

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