2.1. Default method:
특징:
1. default
키워드를 사용하여 정의한다.
2. 인터페이스를 구현한 클래스는 디폴트 메서드를 오버라이드 할 수 있으나, 필수는 아니다.
이유:
interface A {
void a();
default void abc() {
System.out.println("default");
}
}
2.2. Static method:
특징:
1. static
키워드를 사용하여 정의한다.
2. 인터페이스 구현 클래스나 인스턴스에서 오버라이드나 호출이 불가능하다.
3. 주로 인터페이스와 관련된 유틸리티나 헬퍼 메서드를 제공할 때 사용된다.
interface A {
void a();
static void ab() {
System.out.println("static method");
}
}
이 두 메서드의 도입으로 인터페이스의 활용 범위가 확대되었으며, 기존 코드의 안정성을 유지하면서도 새로운 기능을 추가할 수 있는 유연성을 얻었다.