Closed Leeyerimearth closed 2 years ago
저는
인터페이스가 개발자가 기존 퍼블릭 메서드를 제거하거나 시그니처를 수정하고 싶을 때
디폴트 메서드를 수정/삭제 대상 메서드에 임시로 넣어 놓고(아마도 빈 메서드?
) 클라이언트에서 컴파일러 오류를 나게 하지 않기 위한 수단으로
사용하는 것을 금지하라로 해석했습니다.
처음에는 컴파일러 오류가 나지 않을 수도 있으나(기존 구현체들은 해당 디폴트 메서드를 재정의 했을 것이므로)
해당 인터페이스를 구현한 새로운 클래스(재정의를 강제하지 않으므로 비어있는 디폴트 메서드를 가질 가능성이 높은
)
를 수정/삭제 전 퍼블릭 메서드에 의존하는 모듈
에서 사용할 때 문제가 될 것 같습니다.
텅 빈 디폴트 메서드를 호출하게 될 것이니까요!
138p. 3번째 문단이 말하는 내용을 하기와 같이 이해했는데, 다들 어떻게 이해하셨는지 궁금합니다 !
-> 기존 인터페이스의 메서드를 삭제하고 디폴트 메서드를 추가(구현) -> 이제보니 기존 인터페이스의 메서드의 시그니처가 잘못되어있네, 이 메서드는 삭제하고 시그니처 수정해서 이걸 디폴트 메서드로 추가(구현)