정의
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();
}
}
super.method()
를 사용하여 상위 클래스의method
호출함
동물
조류
펭귄
순서로 출력됨.super.method()
가 상위 클래스의 메서드를 호출하기 때문.
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 |