Java출력 결과어려움 · 30점#상속#오버라이딩#생성자#문자열

267. 부모 생성자에서 부른 재정의 메서드와 필드 초기화 시점

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

1class Shape {
2 Shape() {
3 System.out.println(describe());
4 }
5
6 String describe() {
7 return "shape";
8 }
9}
10
11class Box extends Shape {
12 String label = "box";
13 int w;
14
15 Box(int w) {
16 this.w = w;
17 System.out.println(describe());
18 }
19
20 @Override
21 String describe() {
22 return label + ":" + (w * 2);
23 }
24}
25
26public class Main {
27 public static void main(String[] args) {
28 Shape s = new Box(4);
29 System.out.println(s.describe().length());
30 }
31}

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