상위 클래스의 생성자 호출과 자식 클래스에서의 생성자 오버라이딩

자바에서는 상속 관계에 있는 클래스들이 존재할 때, 자식 클래스는 부모 클래스의 멤버를 상속 받을 수 있습니다. 이때, 자식 클래스의 생성자에서는 상위 클래스의 생성자를 호출하여 초기화하는 것이 일반적입니다.

자식 클래스에서 상위 클래스의 생성자를 호출하는 방법에는 두 가지가 있습니다. 첫 번째는 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 클래스의 생성자에서는 numbername 값을 인자로 받아 초기화하기 위해 super(number)라는 코드를 통해 상위 클래스의 생성자를 호출합니다.

이와 같이 자식 클래스에서 상위 클래스의 생성자를 호출하여 초기화함으로써 상속 관계의 객체들은 모두 필요한 값을 가진 상태로 생성될 수 있습니다.

#java #상속 #생성자 #오버라이딩