👩💻 BackEnd/☕️ 자바 [Java]
[Java] 자바의 정석 : 디폴트 메서드와 static 메서드
minhe2810
2024. 2. 27. 15:40
- 인터페이스에 디폴트 메서드, static 메서드 추가 가능 (JDK 1.8 부터)
- 인터페이스에 새로운 메서드(추상메서드)를 추가하기 어려움.
- 디폴트 메서드는 인스턴스 메서드 (인터페이스 원칙 위반)
새로운 메서드를 추가한다는 말은 추상메서드를 추가한다는 말과 동일한데
이를 구현한 클래스에서는 추상 메서드를 반드시 구현해야하는 문제가 생김.
해결책 -> 디폴트 메서드 (default method)
interface MyInterface {
void methoe();
default void newMethod(){} // default 반드시 명시, 구현부 부분 작성해야함.
}
- 디폴트 메서드가 기존의 메서드와 충돌할 때의 해결책
- 여러 인터페이스의 디폴트 메서드 간의 충돌
- 인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩 해야한다. (필요한 쪽으로 선택해서 오버라이딩을 하면 됨)
- 디폴트 메서드와 조상 클래스의 메서드 간의 충돌
- 조상 클래스의 메서드가 상속되고, 디폴트 메서드는 무시된다.
- 여러 인터페이스의 디폴트 메서드 간의 충돌
- 따라서, 그냥 직접 오버라이딩을 해서 해결하면 된다.
✅ 하루 30분씩 6장 30분, 7장 30분 씩 복습하기!