참조변수 super & 생성자 super()
참조변수 super
- 객체 자신을 가리키는 참조변수
- 인스턴스 메서드 (생성자) 내에서만 존재 (static 메서드에서 사용 불가 ❌ )
- 조상의 멤버를 자신의 멤버와 구별할 때 사용
class Parent { int x = 10; }
class Child extends Parent {
int x = 20;
}
Child c = new Child();
class Parent { int x = 10; }
class Child extends Parent { }
Child c = new Child();
조상의 생성자 super()
- 조상의 생성자를 호출할 때 사용
- 조상의 멤버는 조상의 생성자를 호출해서 초기화
class Point{
int x, y;
Point(int x, int y){
this.x = x;
this.y = y;
}
}
class Point3D extends Point {
int z;
Point3D(int x, int y, int z){
~~this.x = x;~~
~~this.y = y;~~
super(x, y);
this.z = z;
}
}
- 생성자의 첫 줄에 반드시 생성자를 호출 ⭐⭐⭐
- 그렇지 않으면 컴파일러가 생성자의 첫 줄에
super();
를 삽입
- 클래스 작성시 기본 생성자 작성은 필수 🌟