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 메서드에서만 호출 가능합니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.