1. 상속의 키워드와 메서드
1-1. 객체 - this & this()
- this 키워드는 객체 자신를 가리키는 것으로, 객체 선언 시 초기화한 값 등을 사용한다.
- this() 메서드는 자신의 생성자를 가리키는 것으로, 새로운 생성자를 만들 때 기존 생성자를 가져온다는 의미이다.
1-2. 상속 - super & super()
1-2-1. super
- super 키워드를 이용해서 부모 클래스의 객체를 가리킨다.
- 부모 클래스의 필드나 메서드를 호출하기 위해 사용한다.
- 부모 클래스와 자식 클래스에서 중복되는 내용을 간소화할 수 있다.
1-2-2. super()
- super() 메서드를 이용해서 부모 클래스의 생성자를 호출한다.
- 생성자 내부에서만 사용할 수 있고, 반드시 첫 줄에 위치해야 한다.
1-2-3. 특징
- 상속 관계에서만 사용할 수 있다.
- super을 사용해도 캐스팅이 필요할 수 있다.
- 생성자의 첫 줄에는 반드시 this()나 super() 중 하나가 있어야 한다.
- 두 메서드 모두 생성자의 첫 줄에서 사용되므로 중복 사용이 불가능하다.
- 두 메서드 모두 없는 경우에는 컴파일러가 자동으로 super()을 추가한다.
2. 하위 호환을 위한 메서드
2-1. default 메서드
- 인터페이스가 이미 상속되어서 사용중일 때 default 메서드를 사용해서 기존 코드의 변화를 주지 않으면서 새 메서드를 추가할 수 있다.
- 새 메서드가 추가되더라도 기존에 구현된 클래스에서는 메서드를 추가할 필요가 없다.
- 새롭게 추가하는 메서드에 default 키워드를 붙여서 구현한다.
2-2. static 메서드
- 정적 메서드라고 하며, 클래스 내부의 정적 메서드와 동일하다./
- 인터페이스명.정적메서드명() 방식으로 호출한다.
- 새롭게 추가된 인터페이스의 기능을 해당 기능을 사용하고 싶은 객체를 수정하지 않고 사용할 수 있다.
2-3. 공통점
- Java 8에 도입된 요소이다.
- 하위호환성을 보장하며 코드 수정을 최소화할 수 있다.
- 새로운 메서드가 추가되어도 구현이 불필요하다.
- 인터페이스에 작성됨에도 구현 내용을 요구한다.