참조변수 super
객체 자신을 가리키는 참조 변수로 부모의 멤버를 자신의 멤버와 구별할 때 사용한다.
인스턴스 메서드(생성자) 내에서만 존재한다.
자손 클래스에 인스턴스 변수가 없을 경우 참조 변수 this와 참조변수 super는 같은 값이 나오게 된다.
그 이유는 상속 받으면 부모의 멤버를 물려 받기 때문에 자식 클래스는 부모가 가지고 있는 변수를 상속을 통해서 소유하게 되고 그것을 참조 변수 this가 가리키게 된다.
조상의 생성자 super()
super()는 부모의 생성자를 호출할 때 사용한다.
자식 클래스가 부모 클래스를 상속 받으면 생성자, 초기화 블록은 상속되지 않기 때문에 super()를 사용한다.
생성자 super()를 사용하려면 반드시 생성자의 첫 줄에서 호출해야 한다.
만약 위의 사진과 같이 부모 클래스에 기본 생성자가 있을 경우 자식 클래스의 생성자에서 첫 줄에 super() 호출이 없어도 정상적으로 실행이 가능하다. 프로그램을 실행하면 컴파일러가 자동으로 자식 클래스의 생성자 첫 줄에 super()를 삽입하기 때문에 오류 없이 실행이 가능하다.
여기서 주의할 점은 부모 클래스는 기본 생성자를 작성하지 않으면 자식의 생성자에서 오류가 발생하기 때문에 필수로 부모 클래스에 기본 생성자를 작성해줘야 한다.
'자바' 카테고리의 다른 글
객체 지향 프로그래밍 - 다형성 (0) | 2023.08.17 |
---|---|
객체 지향 프로그래밍 - 제어자 (0) | 2023.08.16 |
객체 지향 프로그래밍 - 상속 (0) | 2023.08.15 |
객체 지향 프로그래밍 - 생성자 & this (0) | 2023.08.06 |
객체 지향 프로그래밍 - 오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2023.08.06 |