PHpullh
학습 라이브러리/Java/private 인터페이스 메서드

JAVA · 객체지향

private 인터페이스 메서드

Java 9+의 private 인터페이스 메서드로 default 메서드의 중복을 제거합니다.

객체지향중급privateinterfaceJava9default

핵심 설명

Java 9+의 private 인터페이스 메서드로 default 메서드의 중복을 제거합니다.

Java code

interface Logger {
    default void logInfo(String msg) {
        log("INFO", msg);
    }

    default void logError(String msg) {
        log("ERROR", msg);
    }

    default void logWarn(String msg) {
        log("WARN", msg);
    }

    // private 메서드 — default 메서드에서만 호출
    private void log(String level, String msg) {
        String time = java.time.LocalTime.now().toString();
        System.out.printf("[%s] %s: %s%n", time, level, msg);
    }

    // private static 메서드도 가능
    private static String formatMessage(String msg) {
        return msg.trim().toUpperCase();
    }
}

class AppService implements Logger {
    void process() {
        logInfo("처리 시작");
        logWarn("경고 발생");
        logError("에러 발생");
        // log() 직접 호출 불가 — private
    }
}

학습 팁

private 인터페이스 메서드로 default 메서드 간의 공통 로직을 추출하면 DRY 원칙을 지킬 수 있습니다.

주의할 점

private 인터페이스 메서드는 구현 클래스에서 접근할 수 없습니다. 인터페이스 내부의 default 메서드에서만 호출 가능합니다.

자주 묻는 질문

private 인터페이스 메서드란 무엇인가요?

Java 9+의 private 인터페이스 메서드로 default 메서드의 중복을 제거합니다.

private 인터페이스 메서드 학습 시 주의할 점은 무엇인가요?

private 인터페이스 메서드는 구현 클래스에서 접근할 수 없습니다. 인터페이스 내부의 default 메서드에서만 호출 가능합니다.