class가 인스턴스화 될 때 생성자가 실행되면서 객체를 초기화한다. 그 때 자신의 생성자만 실행 되는 것이 아닌, 부모의 생성자부터 실행된다.
부모생성자와 자식생성자 생성
public class Car{
public Car(){
System.out.println("Car의 기본생성자입니다.");
}
}
public class Bus extends Car{
public Bus(){
System.out.println("Bus의 기본생성자입니다.")
}
}
생성자 테스트
public class BusExam{
public static void main(String[] args){
Bus b = new Bus();
}
}
실행결과
Car의 기본생성자입니다.
Bus의 기본생성자입니다.
자식생성자 초기화할 때, 부모생성자 동시 생성
super 의미와 특징
public Bus(){
super();
System.out.println("Bus의 기본생성자입니다.");
}
부모의 기본생성자가 아닌 다른 생성자를 호출하는 방법
public class Car{
public Car(String name){
System.out.println(name + " 을 받아들이는 생성자입니다.");
}
}
public Bus(){
super("소방차");
System.out.println(Bus의 기본생성자이다.);
}
super 키워드는 자식에서 부모의 메소드나 필드를 사용할 때도 사용한다.