이는 여러분이 태어나기 위해서 여러분의 부모님이 먼저 태어나야 하는 것과 같은 이치입니다. new라는 키워드로 Truck을 생성하면 이 Truck이 메모리에 올라갈 때, 즉 Truck이 인스턴스화될 때 부모인 Car 객체도 인스턴스화됩니다. Car 객체가 먼저 생성돼야만 Truck 객체도 생성된다는 것을 기억하세요.
그림 40-1 | 객체가 생성될 때 부모 클래스가 먼저 생성된다.
생성자는 객체를 초기화합니다. 생성자가 호출될 때 자동으로 부모의 생성자가 호출되면서 부모 객체를 초기화합니다. 부모의 생성자를 호출할 때는 부모 객체를 나타내는 super라는 키워드를 사용합니다. super()를 붙이면 부모 생성자가 호출됩니다. 따라서 Truck의 생성자가 호출됐을 때 컴파일러는 부모의 기본 생성자를 호출하는 명령을 자동으로 추가했을 것입니다.
package javaStudy; public class Truck extends Car { public Truck() { super(); System.out.println("Truck의 기본 생성자입니다."); } }
실행결과
Car의 기본 생성자입니다. ruck의 기본 생성자입니다.