상위 클래스의 생성자 호출과 자식 클래스에서의 생성자 오버라이딩
자바에서는 상속 관계에 있는 클래스들이 존재할 때, 자식 클래스는 부모 클래스의 멤버를 상속 받을 수 있습니다. 이때, 자식 클래스의 생성자에서는 상위 클래스의 생성자를 호출하여 초기화하는 것이 일반적입니다.
자식 클래스에서 상위 클래스의 생성자를 호출하는 방법에는 두 가지가 있습니다. 첫 번째는 super()
키워드를 이용하는 것이고, 두 번째는 super
키워드를 사용하여 인자를 전달하는 것입니다.
public class Parent {
private int number;
public Parent(int number) {
this.number = number;
}
}
public class Child extends Parent {
private String name;
public Child(int number, String name) {
super(number); // 상위 클래스의 생성자 호출
this.name = name;
}
}
위의 예시에서 Parent
클래스는 int
타입의 number
멤버 변수를 가지고 있습니다. Parent
클래스의 생성자는 number
값을 인자로 받아 초기화하는 목적을 가지고 있습니다.
Child
클래스는 Parent
클래스를 상속 받는 자식 클래스입니다. Child
클래스는 String
타입의 name
멤버 변수를 가지고 있습니다. Child
클래스의 생성자에서는 number
와 name
값을 인자로 받아 초기화하기 위해 super(number)
라는 코드를 통해 상위 클래스의 생성자를 호출합니다.
이와 같이 자식 클래스에서 상위 클래스의 생성자를 호출하여 초기화함으로써 상속 관계의 객체들은 모두 필요한 값을 가진 상태로 생성될 수 있습니다.
#java #상속 #생성자 #오버라이딩