충분히 쌓여가는
참조변수 super 본문
참조변수 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
'Java > 객체지향' 카테고리의 다른 글
패키지(package) (0) | 2023.06.08 |
---|---|
생성자 super() (0) | 2023.06.07 |
오버로딩(overloading) vs 오버라이딩(overriding) (0) | 2023.06.06 |
메서드 오버라이딩(overriding), toString을 사용하여 출력하기 (0) | 2023.06.06 |
Object 클래스(모든 클래스의 조상), toString() 사용할 수 있는 이유 (0) | 2023.06.05 |