
객체 자신을 가리키는 참조변수.
부모클래스의 객체.
인스턴스 메서드(생성자)내에만 존재한다. -> static 메서드 내에 사용 불가.
조상 멤버와 자신의 멤버가 중복되는 경우에 구별할 때 사용한다.
조상의 멤버에는 super.x를 붙이고, 자신의 멤버에는 this.x를 붙인다.
필드명 중복 또는 메서드 오버라이딩으로 가려진 부모의 필드/메서드를 호출하기 위해 주로 사용함.
조상의 생성자를 호출할 때 사용한다.
생성자 내부에서만 사용 가능하다.
조상의 멤버는 조상의 생성자를 호출해서 초기화
자손의 생성자는 자신이 선언한 것만 초기화 할 수 있다.
📌 자식클래스 생성자의 첫 줄에 반드시 생성자super(), this()를 호출해야 한다.
그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입함.
class Point3D extends Point {
int z;
Point3D(int x, int y, int z) {
// this.x = x; // 조상의 멤버를 초기화
// this.y = y; // 조상의 멤버를 초기화
// 이렇게 하면 안 됨.
super(x, y); // 조상클래스의 생성자 Point(int x, int y)를 호출.
this.z = z; // 자신의 멤버를 초기화
}
}