TIL) Java - 참조변수 super

oatraspberry·2022년 12월 8일
post-thumbnail

참조변수 super

객체 자신을 가리키는 참조변수.
부모클래스의 객체.
인스턴스 메서드(생성자)내에만 존재한다. -> static 메서드 내에 사용 불가.
조상 멤버와 자신의 멤버가 중복되는 경우에 구별할 때 사용한다.
조상의 멤버에는 super.x를 붙이고, 자신의 멤버에는 this.x를 붙인다.
필드명 중복 또는 메서드 오버라이딩으로 가려진 부모의 필드/메서드를 호출하기 위해 주로 사용함.

super() - 조상의 생성자

조상의 생성자를 호출할 때 사용한다.
생성자 내부에서만 사용 가능하다.
조상의 멤버는 조상의 생성자를 호출해서 초기화

  • 상속: 생성자와 초기화블럭은 상속되지 않는다.

자손의 생성자는 자신이 선언한 것만 초기화 할 수 있다.
📌 자식클래스 생성자의 첫 줄에 반드시 생성자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;  // 자신의 멤버를 초기화
    }
}

profile
개발자가 될테야

0개의 댓글