최초에 A라는 인터페이스가 있었다고 가정을 하자. A 인터페이스를 구현하는 B 클래스에서 A 인터페이스의 추상 메소드를 구현해놨다. 나중에 A 인터페이스에 새로운 기능을 추가해야 해서 새로운 추상 메소드를 선언했다. 근데 B 클래스에서 추가된 추상메소드를 구현할 여건이 안된다면, 에러가 발생할 것이다. 이럴 때 디폴트 메소드를 선언한다. A 인터페이스에 있는 디폴트 메소드는 B 구현 클래스에서 반드시 구현할 필요가 없기 때문에 B 클래스를 문제 없이 사용이 가능하다. 물론 C라는 구현 클래스가 추가 된다면 추상메소드를 반드시 구현해야하지만, 새로운 기능인 디폴트 메소드를 A 인터페이스에 선언한대로 사용해도 되고, 재정의해서 사용해도 된다.