자바에서 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
'JAVA > 포스팅' 카테고리의 다른 글
자바 변수의 초기화 (0) | 2023.11.09 |
---|---|
자바 생성자를 이용한 인스턴스의 복사 (0) | 2023.11.09 |
자바 this 키워드를 사용하여 다른 생성자 호출 (0) | 2023.11.09 |
자바 this() 키워드를 사용하여 다른 생성자 호출 (0) | 2023.11.08 |
자바 생성자에서 다른 생성자 호출하기 (0) | 2023.11.08 |