super()는 자바에서 사용되는 특별한 키워드로, 부모 클래스의 생성자를 호출하는 데에 사용됩니다. 자식 클래스의 생성자에서 super()를 사용함으로써 부모 클래스의 생성자를 명시적으로 호출할 수 있습니다. 아래에서 설명을 참고하세요.
1. 부모 클래스의 기본 생성자 호출
부모 클래스가 명시적으로 어떠한 생성자도 정의하지 않았을 때, 자바는 자동으로 부모 클래스에 기본 생성자를 추가합니다. 이런 경우, 자식 클래스의 생성자에서 super()를 사용하여 부모 클래스의 기본 생성자를 호출할 수 있습니다.
class Animal {
Animal() {
System.out.println("Animal 클래스의 기본 생성자");
}
}
class Dog extends Animal {
Dog() {
super(); // 부모 클래스의 기본 생성자 호출
System.out.println("Dog 클래스의 생성자");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
}
}
위의 예제에서 Dog 클래스의 생성자에서 super()를 사용하여 부모 클래스인 Animal 클래스의 기본 생성자를 명시적으로 호출하고 있습니다.
2. 부모 클래스의 매개변수가 있는 생성자 호출
만약 부모 클래스가 매개변수가 있는 생성자를 가지고 있을 경우, 자식 클래스의 생성자에서 super(매개변수)를 사용하여 부모 클래스의 해당 생성자를 호출할 수 있습니다.
class Animal {
String name;
Animal(String name) {
this.name = name;
System.out.println("Animal 클래스의 생성자");
}
}
class Dog extends Animal {
Dog(String name) {
super(name); // 부모 클래스의 생성자 호출
System.out.println("Dog 클래스의 생성자");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog("멍멍이");
}
}
위의 예제에서 Dog 클래스의 생성자에서 super(name)를 사용하여 부모 클래스인 Animal 클래스의 매개변수가 있는 생성자를 호출하고 있습니다. 이렇게 함으로써 부모 클래스의 필드를 초기화할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 패키지의 선언 (0) | 2023.11.11 |
---|---|
자바 패키지(package) (0) | 2023.11.11 |
자바 super (0) | 2023.11.11 |
자바 오버로딩과 오버라이딩 차이 (0) | 2023.11.10 |
자바 오버라이딩의 조건 (0) | 2023.11.10 |