innn

참조변수 super, 생성자 super() 본문

JAVA/자바의 정석 기초편_남궁성(2020)

참조변수 super, 생성자 super()

33삼 2022. 7. 10. 16:22

참조변수 super ( == this와 비슷, lv와 iv구별에 사용)

- 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에서만 존재. (static 메소드 내에는 사용불가)

- 조상의 멤버를 자신의 멤버와 구별할 때 사용.

 

 

이름이 같아도 두 개가 따로 만들어짐

하나는 super.x 하나는 this.x인 것임.

이름이 같을 때 상속이 존재한다. 둘ㄷ ㅏ  super와 this로 구분해서 들어간다.

 

 

여기서 x는 super.x인 동시에 this.x  인 것임.

 

 

super. 과 super()은 전혀 다른 것이다. 관계 없음

super() 은 조상의 생성자이다.

- 조상의 생성자를 호출할 때 사용한다.

- 조상의 멤버는 조상의 생성자를 호출해서 초기화한다.

 

조상이 선언한 멤버들을 초기화하려면 조상의 생성자가 조상을 초기화 하게 하려고. super()을 씀.

 

추가조건

- 생성자의 첫 줄에 반드시 생성자를 호출해야한다. 

그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입

 

부모클래스인 people을 상속받은 자식클래스 student. 부모클래스에 생성자가 있다면 반드시 자식 클래스에서 생성자를 호출해줘야한다

Student 클래스의 생성자는 name, ssn, studentNo를 매개값으로 받아서 name과 ssn은 다시 부모 생성자를 호출하기 위해 매개값으로 넘겨준다.

10라인의 super(name, ssn)은 People의 생성자인 People(String name, String ssn)을 호출한다.