# super - 상속과 생성자 자식 객체를 생성과 동시에 초기화하려면, 먼저 부모의 생성자가 호출돼야만 합니다. 이는 마치 건물을 지을 때, 1층이 완성돼야 2층을 지을 수 있는 것과 같습니다. ![클라우드스터딩-자바-상속-생성자-초기화](https://i.imgur.com/pvPHYqX.gif) 부모 클래스의 생성자 호출은 `super` 키워드를 사용하면 됩니다. ``` class Parent { protected int foo; public Parent(int foo) { this.foo = foo; } } class Child extends Parent { protected int bar; public Child(int foo, int bar) { super(foo); // Parent 클래스의 생성자 호출 this.bar = bar; } } ``` 앞서 배운 this가 자기 자신을 가리킨다면, super는 this의 부모 객체를 가리킵니다. ## 문제 주어진 코드의 Building 객체가 온전히 생성되도록 코드를 완성하고, 출력 예와 같은 결과를 얻으시오. ## 출력 예 ``` [Land]의 생성자 호출! => 150평의 토지에, [Build]의 생성자 호출! => 10층짜리 건물이 세워졌습니다. ```
관련 강의로 이동

코드: java 1.8

public class SuperTest { public static void main(String[] args) { // 건물 객체 생성 Building myBuilding = new Building(150, 10); } } // 토지 class Land { protected int area; // 토지 평수 public Land(int area) { System.out.println("[Land]의 생성자 호출!"); this.area = area; System.out.printf("=> %d평의 토지에,\n", area); } } // 건물 class Building extends Land { protected int top; // 건물 꼭대기 층수 public Building(int area, int top) { /* 1. 부모 클래스의 생성자를 호출하세요. super(area); */ System.out.println("[Build]의 생성자 호출!"); this.top = top; System.out.printf("=> %d층짜리 건물이 세워졌습니다.\n", top); } }

입력

정답이 궁금하다면? 코드를 제출해보세요!