Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

참조변수 super 본문

Java/객체지향

참조변수 super

빌드이너프 2023. 6. 7. 00:06

참조변수 super

객체 자신을 가리키는 참조변수

인스턴스 메서드(생성자)내에만 존재, static 메서드 내에서 사용불가

조상의 멤버를 자신의 멤버와 구별할 때 사용

 

참조변수 this와 참조변수 super의 차이

this: iv와 lv를 구별할 때 사용

super: 조상멤버와 자신멤버 구별할 때 사용

public class superTest {
    public static void main(String[] args) {
        Child c = new Child();
        c.method();
    }
}

class Parent {
    int x = 10; // super.x
}

class Child extends Parent {
    int x = 20; // this.x

    void method() {
        System.out.println(super.x); // 10
        System.out.println(this.x); // 20
        System.out.println(x); // 20 가까이 있기 때문에 this.x를 호출
    }
}

10
20
20

 

super와 this가 둘 다 가능한 경우

public class superTest {
    public static void main(String[] args) {
        Child c = new Child();
        c.method();
    }
}

class Parent {
    int x = 10; // super.x와 this.x 둘 다 가능
}

class Child extends Parent {

    void method() {
        System.out.println(super.x); // 10
        System.out.println(this.x); // 20
        System.out.println(x); // 20 가까이 있기 때문에 this.x를 호출
    }
}

10
10
10