[4단원]super 키워드

정의

  • super 는 자바 같은 단일 상속을 지원하는 객체지향 언어에서 사용되는 키워드임.
  • 해당 키워드는 바로 상위 클래스의 인스턴스를 지칭함.
  • this 가 객체 자신을 지칭한다면, super부모 클래스 를 지칭한다.

코드 예제

package Super;

class 동물 {
    void method() {
        System.out.println("동물");
    }
}

class 조류 extends 동물 {
    void method() {
        super.method();
        System.out.println("조류");
    }
}

class 펭귄 extends 조류 {
    void method() {
        super.method();
        System.out.println("펭귄");
        // Syntax error on token "super", Identifier expected
        // super.super.method();
    }
}

public class Driver {
    public static void main(String[] args) {
        펭귄 뽀로로 = new 펭귄();
        뽀로로.method();
    }
}
  1. super.method() 를 사용하여 상위 클래스의 method 호출함
  1. 동물 조류 펭귄 순서로 출력됨.

    super.method() 가 상위 클래스의 메서드를 호출하기 때문.

  1. super.super.method() 처럼 상위의 상위 클래스에는 접근할 수 없음.

    컴파일 에러가 발생함.

메서드 오버라이딩과 관계

  • super 는 주로 메서드 오버라이딩 상황에서 유용하다.
  • 하위 클래스에서 상위 클래스의 메서드를 오버라이딩시,
  • 상위 클래스의 원본 메서드를 호출하고 싶을 때 super 키워드를 사용함.

Uploaded by N2T

'자바 > 스프링입문객체지향' 카테고리의 다른 글

[5단원]5원칙 - OCP  (0) 2023.09.10
[4단원]this 키워드  (0) 2023.09.04
[4단원]Package 키워드  (0) 2023.08.31
[4단원]interface 키워드와 implements 키워드  (0) 2023.08.31
[4단원]instanceof 연산자  (0) 2023.08.29