Java : super()

m_ngyeong·2024년 10월 16일
0

Java

목록 보기
14/14
post-thumbnail

☕️ Java

super() 키워드

super 키워드부모 클래스의 멤버(필드나 메서드)에 접근할 때 사용한다. 자식 클래스가 부모 클래스의 메서드를 오버라이드(재정의)했을 때, 부모 클래스의 원래 메서드를 호출하거나 부모 클래스의 생성자를 명시적으로 호출하고 싶을 때 사용한다.

예시 1: 부모 클래스 메서드 호출

class Animal {
    public void sound() {
        System.out.println("Animal makes a sound.");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        // 부모 클래스의 메서드를 호출하고, 추가적으로 동작 정의
        super.sound();  // Animal makes a sound.
        System.out.println("Dog barks.");
    }
}

public class SuperExample1 {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.sound();  // Animal makes a sound. Dog barks.
    }
}

출력:

Animal makes a sound.
Dog barks.
  • super.sound() : 자식 클래스에서 부모 클래스의 sound() 메서드를 호출.

예시 2: 부모 클래스 생성자 호출

super()를 사용하여 부모 클래스의 생성자를 명시적으로 호출할 수 있다. 자식 클래스의 생성자에서는 기본적으로 부모 클래스의 기본 생성자가 자동으로 호출되지만, 매개변수가 있는 생성자를 호출할 때는 super()를 명시적으로 사용해야 한다.

class Animal {
    String name;

    // 부모 클래스 생성자
    public Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    String breed;

    // 자식 클래스 생성자
    public Dog(String name, String breed) {
        super(name);  // 부모 클래스의 생성자 호출
        this.breed = breed;
    }

    public void showInfo() {
        System.out.println(name + " is a " + breed);
    }
}

public class SuperExample2 {
    public static void main(String[] args) {
        Dog dog = new Dog("Buddy", "Golden Retriever");
        dog.showInfo();  // Buddy is a Golden Retriever
    }
}
  • super(name)는 자식 클래스의 생성자에서 부모 클래스의 생성자를 호출.


참고문헌,
https://hyperskill.org/learn/step/3572

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글