Java에서 인터페이스(interface)는 객체의 사용 방법을 정의한 타입이다.
코드가 인터페이스의 메소드를 호출하면, 인터페이스는 객체의 메소드를 호출시킨다.
→ 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다!
개발 코드가 직접 객체의 메소드를 호출하면 간단한데, 왜 중간에 인터페이스를 둘까?
→ 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위해서이다.
→ 코드의 변경 없이 실행 내용과 리턴값을 다양화할 수 있다. = 다형성
인터페이스는 ~.java
형태의 소스 파일로 작성되고 컴파일러(javac.exe)를 통해 ~.class
형태로 컴파일되기 때문에 물리적 형태는 클래스와 동일하다.
인터페이스 선언은 class
키워드 대신에 interface
키워드를 사용한다.
public interface 인터페이스명 { ... }