JAVA/포스팅

자바 super() 키워드를 사용하여 부모 클래스의 생성자 호출

짜집퍼박사(짜박) 2023. 11. 9. 01:11

자바에서 super() 키워드를 사용하여 부모 클래스의 생성자를 호출하는 것은 상속 관계에서 자식 클래스가 부모 클래스의 생성자를 호출할 때 사용됩니다. 이를 "부모 클래스의 생성자 호출" 또는 "super 생성자 호출"이라고 합니다. super() 키워드를 사용하여 부모 클래스의 생성자를 호출하면, 자식 클래스의 생성자 내에서 부모 클래스의 초기화 코드를 실행할 수 있습니다.

부모 클래스의 생성자 호출을 위해 super() 키워드를 사용할 때 몇 가지 주의해야 할 점이 있습니다.

1. super()는 반드시 자식 클래스의 생성자 내에서 첫 번째 문장으로 위치해야 합니다.
2. super()로 호출하는 부모 클래스의 생성자는 매개변수에 따라 다르게 호출할 수 있습니다. 따라서 필요한 생성자 시그니처를 사용하여 호출해야 합니다.

다음은 super() 키워드를 사용하여 부모 클래스의 생성자를 호출하는 예제 코드입니다.

class Parent {
    private int parentValue;

    // 부모 클래스의 생성자
    public Parent(int parentValue) {
        this.parentValue = parentValue;
    }

    public int getParentValue() {
        return parentValue;
    }
}

class Child extends Parent {
    private int childValue;

    // 자식 클래스의 생성자
    public Child(int parentValue, int childValue) {
        super(parentValue); // 부모 클래스의 생성자 호출
        this.childValue = childValue;
    }

    public int getChildValue() {
        return childValue;
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child(10, 20);
        System.out.println("Parent Value: " + child.getParentValue()); // 10 (부모 클래스의 값)
        System.out.println("Child Value: " + child.getChildValue()); // 20 (자식 클래스의 값)
    }
}

위의 코드에서 Child 클래스는 Parent 클래스를 상속하고 있으며, super(parentValue)를 사용하여 부모 클래스인 Parent의 생성자를 호출하고 있습니다. 이를 통해 자식 클래스의 생성자에서 부모 클래스의 초기화 코드를 실행하면서, 자식 클래스의 필드도 초기화할 수 있습니다.

 

With ChatGPT