경주장
8주차 과제: 인터페이스 #8 static, private methods (~03.04) 본문
✔️ 학습할 것 (필수)
인터페이스 정의하는 방법인터페이스 구현하는 방법인터페이스 레퍼런스를 통해 구현체를 사용하는 방법인터페이스 상속인터페이스의 기본 메소드 (Default Method), 자바 8인터페이스의 static 메소드, 자바 8인터페이스의 private 메소드, 자바 9
Static Methods
Class와 동일하게 Interface에도 인스턴스 없이 레퍼런스 타입에 직접 붙혀 사용하는 Static Method를 구현할 수 있다.
자바 기본 인터페이스 중 하나인 Stream의 of 메소드는 static method로서 구현이 Interface에 포함되어있다.
public interface Stream<T> extends BaseStream<T, Stream<T>>{
//Abstract Methods ...
//Default Methods ...
//Static Methods ...
public static<T> Stream<T> of(T t) {
return StreamSupport.stream(new Streams.StreamBuilderImpl<>(t), false);
}
@SafeVarargs
public static<T> Stream<T> of(T... values) {
return Arrays.stream(values);
}
}
Private Methods
자바 9에는 추가로 interface에 pricate method를 정의 할 수 있게되어 내부의 default method 혹은 static method의 구현에 활용할 수 있다
Default Method와 달리 Static, Private Method는 재정의 (Override)될 수 없으며 Static Method의 경우 인터페이스를 구현한 클래스의 레퍼런스 타입으로 접근 할 수 없고 오로지 인터페이스의 레퍼런스 타입으로 접근 가능하다.