인터페이스와 디폴트 메서드 (Default Method)

CJI0524·2024년 9월 13일
0

Java/Class

목록 보기
5/8

1. 인터페이스와 디폴트 메서드 (Default Method)

디폴트 메서드 (Default Method)란 인터페이스 내부에서 추상 메서드의 기본적인 구현을 제공하는 메서드로 인터페이스에 새로운 메서드를 추가할 때 생기는 고충을 해결하기 위해 고안된 개념이다. 기존의 경우 인터페이스에 새로운 메서드를 추가한다는 것은 추상메서드 (Abstract Method)를 추가한다는 것을 의미하였고 이는 이 인터페이스를 구현 (implement)한 모든 클래스들이 새로 추가된 메서드를 구현해야 한다는 문제점이 있었다. 디폴트 메서드의 경우 추상 메서드가 아니기에 디폴트 메서드가 새로 추가되어도 해당 인터페이스를 구현한 클래스를 변경하지 않아도 된다. 또한 구현한 클래스에서는 디폴트 메서드에 대한 별도의 오버라이딩을 요구하지 않는다.

접근제어자 default와는 전혀 상관이 없으며 혼동하지 않도록 주의해야 한다.

2. 디폴트 메서드의 활용 예시

다음은 디폴트 메서드의 활용에 대한 간단한 예시 코드이다.

✍️ 작성

// 인터페이스 정의
public interface MyInterface {
    // 디폴트 메서드
    default void printMessage() {
        System.out.println("This is a default method");
    }
}

// MyInterface를 구현하는 클래스
public class MyClass implements MyInterface {
    // 이 클래스는 printMessage()를 오버라이드하지 않고 그대로 사용
}

// 메인 클래스
public class Main {
    public static void main(String[] args) {
        // MyClass의 인스턴스 생성
        MyClass myClass = new MyClass();
        
        // 디폴트 메서드 호출
        myClass.printMessage();  // 출력: This is a default method
    }
}

🖥️ 결과

This is a default method

디폴트 메서드는 위 코드처럼 앞에 키워드 default 를 붙이며, 추상 메서드와 달리 일반 메서드처럼 몸통 {}이 있어야 한다. 즉 구현이 필요하며 그 외에는 일반 메서드와 동일하다.

3. 해당 게시글 작성에 참고한 글 목록

자바의 정석 3판 (남궁성)
JavaTechOnline

profile
개발돌이

0개의 댓글