7-10~11 참조변수 super, 생성자 super()

oyeon·2020년 12월 24일
0

(완)객체지향 개념

목록 보기
21/37

참조변수 super

  • 객체 자신을 가리키는 참조 변수
  • 인스턴스 메서드(생성자)내에서만 존재 (static 메서드 내에 사용 불가)
  • 조상의 멤버를 자신의 멤버와 구별할 때 사용 (this : lv와 iv 구별에 사용)

조상의 생성자 super()

  • 조상의 생성자를 호출할 때 사용 (생성자, 초기화 블럭은 상속 X)
  • 조상의 멤버는 조상의 생성자를 호출해서 초기화
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){
    	super(x, y)	// 조상 클래스의 생성자 Point(int x, int y) 호출
        this.z = z;
    }
}
  • 생성자의 첫 줄에 반드시 생성자를 호출해야 한다. 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입
    -> 조상 클래스에서 만약 매개변수가 있는 생성자를 선언하고 기본 생성자를 선언하지 않은 상황에서, 자식 클래스의 생성자 호출을 하지 않으면 super()를 선언하므로 오류가 발생할 수 있다. 이런 오류를 방지하기 위해 기본적으로 기본 생성자를 선언해야 함.
profile
Enjoy to study

0개의 댓글