default method
default method
등장 배경
- 기존 인터페이스에 새로운 메서드를 추가하면 이미 배포된 구현체들이 전부 컴파일 에러가 나는 문제가 발생
- 디폴트 메서드를 통해 인터페이스에 기본 구현을 제공함으로써, 하위 호환성을 꺠뜨리지 않고 기능을 확장 가능
사용 예시
1
2
3
4
5
6
7
public interface MyInterface {
void existingMethod();
default void newMethod() {
System.out.println("새로 추가된 디폴트 메서드입니다.");
}
}
default키워드를 통해 메서드 몸통을 인터페이스에 직접 정의- 필요한 경우 구현 클래스에서 재정의하면 되고, 재정의 하지 않으면 인터페이스의 기본 구현 사용
장점
- 기존 코드를 수정하지 않고도 인터페이스에 새 기능을 추가 가능
주의 사항
- 하위 호환성을 위한 최소환의 활용
- 인터페이스 본연의 추상화 목적 유지
- 다중 상속(충돌) 문제
- 상태(state)를 두지 말 것
참고
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.