this는 자신의 객체, this()는 자신의 생성자를 의미했다면,
super 키워드는 부모의 객체, super()는 부모의 생성자를 의미한다. 부모 클래스와 관련이
있으므로 상속 관계에서만 사용이 가능하다.
1. super 키워드
super 키워드는 부모의 객체를 가리키는 참조(Reference) 변수다.
필드명의 중복 또는 메서드 오버라이딩으로 가려진 부모의 필드 또는 메서드를 호출하기 위해 사용한다.
super.abc();
명시적으로 부모객체의 abc메서드라는 것을 알 수 있다.
2. super() 메서드
부모의 생성자를 호출하는 메서드다.
생략하면 컴파일러가 자동으로 넣어주기 때문에 항상 자식 클래스의 첫 줄에 존재한다.
따라서 모든 자식클래스는 super()메서드를 통해 최상위 클래스의 생성자부터 만들게 된다.
Java에서 최상위 클래스는 java.lang.Object이다. 따라서 우린 상속을 통해 Object의 메서드인 toString()
메서드를 사용할 수 있는 것이다.
참고문헌 : Do it! 자바 완전정복
'Java > 자바 이론' 카테고리의 다른 글
[Java] 추상 클래스와 추상 메서드 (abstract) (0) | 2022.07.04 |
---|---|
[Java] 메서드 오버로딩과 오버라이딩 (1) | 2022.06.30 |
[Java] 자바 클래스 상속의 장점과 특징 (2) | 2022.06.30 |
[Java] 클래스 관계 HAS-A (포함) / IS-A (상속) 정리 (2) | 2022.06.29 |
[Java] 클래스 내부 구성 요소 3가지 (필드, 생성자, 메서드 + This) (0) | 2022.06.27 |