java에는 super과 super() 두가지 키워드가 있습니다.
super 키워드는 자신이 상속받은 부모 클래스에 대한 레퍼런스 변수로, 부모 클래스의 멤버에 접근할 때 사용합니다. 객체 안에 있는 부모의 멤버 변수와 자식 멤버 변수를 구별하기 위해서 사용합니다.
super()는 자식 클래스의 생성자에서 부모 클래스의 생성자를 호출하기 위해서 사용합니다. 이 키워드는 생성자 코드 안에서 다른 코드에 앞서 맨 첫번째 줄에서 사용되어야 합니다.
class Person {
private final String name;
public Person(String name) {
this.name = name;
this.age = age;
}
public void talk() {
System.out.println("저는 " + name + "입니다.");
}
}
class Student extends Person [
public Student(String name) {
super(name); // 부모 클래스 멤버에 접근하는 방식
}
@Override
public void talk() {
super.talk(); // 부모 클래스의 메서드 호출
System.out.println("저는 학생입니다");
}
}