기본 메서드 (Default Methods) 인터페이스에 메서드 선언이 아니라 구현체를 제공하는 방법 해당 인터페이스를 구현한 클래스를 깨뜨리지 않고 새 기능을 추가할 수 있다. 기본 메서드는 구현체가 모르게 추가된 기능으로 그만큼 리스크가 있다. 컴파일 에러는 아니지만 구현체에 따라 런타임 에러가 발생할 수 있다. 반드시 문서화 할 것(@implSpec 자바독 태그 사용 , 자바8에서 추가되었음) Object 제공하는 기능 (equals , hashCode , toString 등등..)은 기본 메서드로 제공 할 수 없다. 구현체를 재정의 해야 한다. 본인이 수정할 수 있는 인터페이스 에만 기본 메서드를 제공할 수 있다. 인터페이스를 상속받는 인터페이스에서 다시 추상 메서드로 변경할 수 있다. 인터페이스..
기록/JAVA 2021. 1. 10. 15:01
기본 메서드 (Default Methods) 인터페이스에 메서드 선언이 아니라 구현체를 제공하는 방법 해당 인터페이스를 구현한 클래스를 깨뜨리지 않고 새 기능을 추가할 수 있다. 기본 메서드는 구현체가 모르게 추가된 기능으로 그만큼 리스크가 있다. 컴파일 에러는 아니지만 구현체에 따라 런타임 에러가 발생할 수 있다. 반드시 문서화 할 것(@implSpec 자바독 태그 사용 , 자바8에서 추가되었음) Object 제공하는 기능 (equals , hashCode , toString 등등..)은 기본 메서드로 제공 할 수 없다. 구현체를 재정의 해야 한다. 본인이 수정할 수 있는 인터페이스 에만 기본 메서드를 제공할 수 있다. 인터페이스를 상속받는 인터페이스에서 다시 추상 메서드로 변경할 수 있다. 인터페이스..