티스토리 뷰

Java

[Java] - super(), this()

영지는 달리는중 2020. 10. 10. 23:50

1. super()

  • 부모 생성자를 호출한다 즉, 상속받은 부모 생성자를 호출하여 사용할 수 있다
  • 인수를 넣으면 해당 인자로 부모 생성자가 초기화 된다
class Parent {

    int a;

    Parent() { a = 10; }

    Parent(int n) { a = n; }

}

 

class Child extends Parent {

    int b;

    Child() {

①      //super(40);

        b = 20;

    }

    void display() {

        System.out.println(a);

        System.out.println(b);

    }

}

 

public class Inheritance04 {

    public static void main(String[] args) {

        Child ch = new Child();

        ch.display();

    }

}

① 주석이 있는 경우 부모의 기본 생성자를 호출하게 되어 결과는 10,20이 나오게된다

① 주석을 제거한 경우 부모의 생성자 중 파라미터가 있는 생성자가 호출되고 인수값으로 값이 초기화되어 결과는 40,20이 나오게 된다

 

2. this()

  • 같은 클래스의 다른 생성자를 부를 때 사용되면 생성자 내부에서만 사용 가능하다
  • this()에서 받은 인수를 보고 같은 클래스의 생성자들 중 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출하게 된다
public class NotFoundException extends ResponseStatusException {
    public NotFoundException(){
        this("NotFoundException");
    }

    public NotFoundException(String message) {
        super(HttpStatus.NOT_FOUND,message);
    }
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함