티스토리 뷰
super키워드는 상속과 관련되어 있는 키워드이다.
자바는 단일상속만 지원하는데 super키워드는 바로 윗단계의 클래스의 인스턴스를 지칭하는 키워드이다.
예시를 보여주면
class 동물 {
void method() {
System.out.println("동물")
}
}
class 조류 {
super.method();
void method() {
System.out.println(" 조류 ")
}
}
class 펭귄 {
super.method();
void method() {
System.out.println(" 펭귄 ")
}
}
public class Main {
public static void main(String [] args) {
펭귄 뽀로로 = new 펭귄();
뽀로로. method();
}
}
위의 코드를 실행해 보면 위에 설명한 대로 바로 위단계의 클래스를 호출한다.
결과는
1. 동물
2. 조류
3. 펭귄 순으로 출력되는데 이유는 펭귄에 super.method()가 조류에 있는 super.method()를 호출하고
조류에 super.method()가 동물에 method()를 호출하고 "동물"출력 후 조류클래스로 돌아가 "조류" 출력후
그다음 마지막으로 펭귄 클래스로 돌아가 "펭귄"을 출력하고 쌓여있던 스택이 사라지면서
프로그램이 종료된다고 볼 수 있다. (나의 생각)
그리고 한 번에 여러 상위클래스로 건너뛰는 것은 접근이 불가능하다.
'Java' 카테고리의 다른 글
| Primitive Type의 종류와 범위 기본값은? (0) | 2024.08.19 |
|---|---|
| 디자인 패턴 (프록시 패턴) 미완성 (0) | 2024.08.13 |
| 디자인 패턴의 종류 (어댑터 패턴) (0) | 2024.08.12 |
| this키워드 (0) | 2024.07.17 |
