package ch08.sec07;
public interface Service {
// default method
default void defaultMethod1() {
System.out.println("defaultMethod1 종속 코드");
defaultCommon();
}
default void defaultMethod2() {
System.out.println("defaultMethod2 종속 코드");
defaultCommon();
}
// private method
private void defaultCommon() {
System.out.println("defaultMethod 중복코드 A");
System.out.println("defaultMethod 중복코드 B");
}
// static method
static void staticMethod1() {
System.out.println("staticMethod1 종속 코드");
staticCommon();
}
static void staticMethod2() {
System.out.println("staticMethod2 종속 코드");
staticCommon();
}
private static void staticCommon() {
System.out.println("staticMethod 중복코드 C");
System.out.println("staticMethod 중복코드 D");
}
}
private 메소드는 디폴트 메소드 안에서만 호출이 가능
private static 메소드는 디폴트 메소드와 정적 메소드 안에서도 호출 가능
private 메소드의 용도는 default 와 static 메소드의 중복코드를 줄이기 위해서 사용한다.
위 코드에선 private 메소드는 결국 public인 default 메소드나 static 메소드에서 호출해서 사용하게 되는 용도로 작성된 것
'Java' 카테고리의 다른 글
로컬 클래스 / 바깥 클래스 (0) | 2024.07.06 |
---|---|
중첩 클래스 / 인스턴스 멤버 클래스 / 정적 멤버 클래스 (0) | 2024.07.05 |
싱글톤 (0) | 2024.06.23 |
Getter / Setter (0) | 2024.06.23 |
이것이 자바다 - 클래스(2) (0) | 2024.06.21 |