super : 상속을 하면 자식의 멤버(변수, 메서드)와 이름이 겹치게 될 때가 있는데 이를 구분하기 위해
super.변수 , super.메서드()를 사용하면 자식의 멤버가 호출되지 않고 상속받은 부모의 멤버를 호출할 수 있게 됩니다.
package chapter20230821;
/* 상속과 멤버 변수 */
class Parent {
int x = 10;
}
class Child extends Parent {
int x = 20;
void method(int x) {
System.out.println("x = " + x); // method(int x) 호출 이 x값은 c.method(30); 으로 인해 30
System.out.println("this.x = " + this.x); // int x = 20; 호출
System.out.println("super.x = " + super.x); // 부모클래스의 x를 호출
}
}
public class test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Child c = new Child();
c.method(30);
/*
x = 10
this.x = 10
super.x = 10
*/
}
}