Java 인터페이스는 객체가 제공할 동작의 계약을 타입으로 표현하는 언어 요소이다. 구현 클래스를 특정하지 않고 코드를 연결할 수 있다.
원리
클래스는 인터페이스를 구현하고 호출자는 인터페이스 타입을 통해 메서드를 사용한다. 현대 Java의 인터페이스는 추상 메서드 외에도 정해진 종류의 구현 메서드를 가질 수 있다.
Java 실행과 API |
|---|
JVM · javac · Java 바이트코드 · Java 가비지 컬렉션 · Java 제네릭 |
Java 인터페이스 · Java 예외 처리 · Java Stream API · Java Optional · Java 리플렉션 |
예시
저장 기능을 Repository 인터페이스로 표현하면 메모리 구현과 데이터베이스 구현을 호출 코드와 분리해 교체할 수 있다.
주의할 점
메서드 이름이 같다고 의미와 오류 조건까지 자동으로 일치하지 않는다. 계약에는 입력 조건과 결과, 부수 효과도 포함하며 여러 기본 구현이 겹칠 때 해결 규칙을 확인한다.