Super

공부하자·2023년 5월 8일
0

그녀를 붙Java

목록 보기
7/8

Super 키워드

super 키워드를 사용하는 경우는 다음과 같습니다.

  1. 자식 클래스의 생성자에서 부모 클래스의 매개변수가 있는 생성자를 호출하여 초기화 처리하기 위해 super 키워드를 사용합니다. 이렇게 함으로써 부모 클래스 객체가 생성될 때 필드에 원하는 초기값을 저장할 수 있습니다.
    super(값, 값, ...) 형식으로 사용하며, 생략된 경우 부모 클래스의 매개변수가 없는 기본 생성자가 호출되어 객체가 생성됩니다. 또한, 생성자에서 다른 생성자를 호출하는 명령은 반드시 첫 번째 명령으로 작성되어야 합니다.
  1. 자식 클래스의 메소드에서 부모 클래스의 메소드를 호출해야 하는 경우 super 키워드를 사용합니다. 이는 오버라이드된 부모 클래스의 메소드를 호출하기 위해 사용됩니다.

이렇게 super()와 super 키워드를 사용하여 부모 클래스의 생성자를 호출하고 부모 클래스의 멤버를 참조할 수 있습니다. 이를 통해 자식 클래스는 부모 클래스의 기능을 상속받아 활용할 수 있습니다.


예시 코드

  • super()를 사용한 부모 클래스 생성자 호출
class 부모클래스 {
    private int x;

    public 부모클래스(int x) {
        this.x = x;
    }

    // 부모 클래스의 메소드들...
}

class 자식클래스 extends 부모클래스 {
    private int y;

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

    // 자식 클래스의 메소드들...
}

위의 예시에서 자식 클래스인 자식클래스는 부모 클래스인 부모클래스를 상속받습니다.
자식클래스의 생성자에서 super(x)를 통해 부모 클래스의 생성자를 호출하고 있습니다.
이렇게 함으로써 부모 클래스의 생성자가 실행되고, 부모 클래스의 필드 x는 전달받은 값으로 초기화됩니다. 그리고 자식클래스의 필드 y도 초기화됩니다.


  • super를 사용한 부모 클래스의 메소드 호출
class 부모클래스 {
    public void 메소드() {
        System.out.println("부모 클래스의 메소드입니다.");
    }
}

class 자식클래스 extends 부모클래스 {
    @Override
    public void 메소드() {
        super.메소드(); // 부모 클래스의 메소드 호출
        System.out.println("자식 클래스의 메소드입니다.");
    }
}

자식클래스는 부모 클래스의 메소드를 오버라이딩하고 있습니다.
super.메소드()를 통해 부모 클래스의 메소드를 호출하고 있습니다.
이렇게 함으로써 숨겨진 부모 클래스의 메소드를 호출하고, 자식 클래스의 기능을 추가로 수행합니다.

0개의 댓글