더북(TheBook)

Car 클래스에서는 기본 생성자를 없애고 Car의 이름을 받는 생성자를 추가해볼게요.

package javaStudy;

public class Car{
    public Car(String name) {
        System.out.println("Car의 name 생성자입니다.");
    }
}

 

수정한 뒤 다시 Truck 클래스에 가보니 에러가 발생했습니다.

Implicit super constructor Car() is undefined. Must explicitly invoke another constructor

 

Truck 객체가 생성되기 위해서는 반드시 부모 객체가 먼저 생성돼야 하는데, 부모의 생성자를 직접 호출하지 않으면 컴파일러는 기본 생성자만 호출합니다. 그런데 부모 클래스에 기본 생성자가 없으므로 Truck 클래스 자체에 에러가 발생한 것입니다. 이럴 때는 프로그래머가 직접 생성자를 호출해야 에러가 발생하지 않겠죠? 이때 super라는 키워드를 사용해야 합니다.

//    super();

 

이 부분의 주석문을 삭제하고, 다음과 같이 수정하세요.

    super("트럭");

 

super 키워드는 자식이 부모의 메서드나 필드를 사용할 때도 쓸 수 있으므로 꼭 기억해두세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.