[Java] super가 뭔디

상트리버·2022년 12월 16일
0

Spring 이론

목록 보기
21/23

super

자신이 상속받은 부모 클래스에 대한 참조 변수로, 부모 클래스의 멤버에 접근할 때 사용한다.

  • 주로 객체안에 있는 부모의 멤버변수와 자신의 멤버변수를 구별하기 위해 사용된다.

super()

  • 자식클래스의 생성자에서 부모 클래스의 생성자를 호출하기 위해서 사용된다.
  • super()는 생성자 코드 안에서 사용 될 때, 첫줄에 사용되어야 한다.
  • 자식 클래스의 모든 생성자는 부모 클래스의 생성자를 포함하고 있어야 한다.
    그런데 만약 자식 클래스의 생성자에 부모 클래스의 생성자가 지정되어 있지 않다면, 컴파일러가 자동으로 부모 클래스의 기본생성자를 호출한다.
    (이러한 경우, 부모클래스에 매개변수가 있는 생성자만 있고, 기본 생성자가 없어 기본 생성자를 호출할 수 없다면 에러가 발생합니다)

  • 개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어준다
  • Object클래스를 제외한 모든 클래스의 생성자 첫 줄에 생성자.this() 또는 super(),를 호출해야 한다. 그렇지 않으면 컴파일러가 자동적으로 'super();'를 생성자의 첫 줄에 삽입한다.
  • 모든 클래스는 Object의 생성자를 호출한다.

0개의 댓글