default로 구현한 메서드는 정숫값을 리턴한다고 했으므로 받아서 이렇게 출력할 수도 있습니다.
package javaStudy; public class MyCalTest { public static void main(String[] args) { Calculator cal = new MyCal(); cal.plus(3, 4); int i = cal.exec(5, 6); System.out.println(i); } }
실행결과
11
실행결과 인터페이스에 구현한 메서드를 실행하면서 구현한 대로 두 정수를 더한 값을 출력합니다.
자, 이제 첫 문제로 돌아갑시다. 왜 자바 8에서는 default 메서드를 추가했을까요? 인터페이스를 구현하는 모든 클래스는 해당 메서드를 모두 구현해야 합니다. 그런데 만약 인터페이스를 변경한다면 어떻게 될까요? 변경한 인터페이스를 구현하는 모든 클래스가 다시 변경 사항을 구현해야 할 것입니다. 바로 이런 문제를 해결하기 위해 인터페이스에서 메서드를 구현할 수 있도록 default를 추가한 것입니다.