다음 Java 코드의 ①에 들어갈 예약어를 쓰시오.
class Rectangle {
int width;
int height;
Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
}
class Square extends Rectangle {
Square(int side) {
①(side, side);
}
int area() {
return width * height;
}
}모범답안
super
풀이와 판단 근거
Square는 Rectangle을 상속하고 Rectangle에는 인자 없는 생성자가 없다. 따라서 Square 생성자의 첫 문장에서 부모 생성자 Rectangle(int, int)를 명시적으로 호출해야 한다.
Java에서 부모 생성자 호출은 super(인자) 구문을 사용하므로 ①은 super다. super(side, side)가 width와 height를 같은 side 값으로 초기화한다.
자주 틀리는 지점
- 현재 클래스의 다른 생성자를 호출하는 this(...)와 부모 생성자를 호출하는 super(...)를 혼동함
- super 호출을 생성자 첫 문장이 아닌 위치에 둘 수 있다고 오해함
- 부모 클래스에 기본 생성자가 없는데도 컴파일러가 자동으로 해결한다고 판단함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.