💡 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는 데 사용하는 참조 변수이다.
class Parent {
int a = 10;
}
class Child extends Parent {
int a = 20;
void display() {
// a = 자식의 변수
// 만약 자식에게 a라는 변수가 없었다면 부모의 a를 가리킴
System.out.println(a); // 20
System.out.println(this.a); // 20
// 참조 변수 super를 통해 부모의 a에 접근 가능
System.out.println(super.a); // 10
}
}
public class Main {
public static void main(String[] args) {
Child ch = new Child();
ch.display();
}
}
💡 자식 클래스에서 부모 클래스의 생성자를 호출하는데 사용되는 메소드이다. 이를 통해 부모 클래스의 초기화 과정이 수행되어 자식 클래스가 올바르게 초기화될 수 있다.
class Parent {
int a;
Parent(int n) {
a = n;
}
}
class Child extends Parent {
int b;
Child() {
super(); // 오류 발생
b = 20;
}
}
class Parent {
int a;
Parent() { a = 10; } // 1
Parent(int n) { a = n; }
}
class Child extends Parent {
int b;
Child() {
super(40); // 2
b = 20;
}
void display() {
System.out.println(a); // 40
System.out.println(b); // 20
}
}
public class Main {
public static void main(String[] args) {
Child ch = new Child();
ch.display();
}
}