인터페이스의 디폴트 메소드는 자바8부터 나왔다고 한다.. 알아두자.
선언은 인터페이스에 하고 사용은 구현객체에서 한다.
왜 이걸 만들었을까?
기존 인터페이스를 확장해서 새로운 기능을 추가하기 위해서
특징?
디폴트 메소드는 정의된 형태이므로 implemets했을 때 해당 메소드의 구현을 강제하지 않는다.
디폴트 메소드는 다음과 같이 정의할 수 있다.
1 | public interface MyInterface{ |
디폴트 메소드를 갖는 인터페이스를 인터페이스가 상속했을 때?
디폴트 메소드를 처리하기 위해 다음 3가지중 선택가능
- 디폴트 메소드를 단순히 상속만 받는다.
- 디폴트 메소드를 오버라이딩 해서 내용 변경
- 디폴트 메소드를 추상메소드로 재선언