Java에서 인터페이스(Interface)는 객체 지향 프로그래밍의 여러 특징을 갖고 있습니다.
추상화
인터페이스는 일종의 규약이라고 볼 수 있으며, 이를 구현하는 클래스는 반드시 인터페이스가 정의한 메서드를 구현해야 합니다.
여러 클래스가 가진 공통적인 기능들을 인터페이스에 미리 정의하여 쓸 수 있으므로 추상화의 특징을 가집니다.
다형성
인터페이스를 구현한 여러 클래스는 같은 인터페이스 타입으로 참조될 수 있습니다. 이를 통해 동일한 메서드 호출로 다양한 구현체들에 다른 동작을 수행시킬 수 있습니다.
상속성
상속성의 경우에는 속성과 기능을 부모로부터 물려받을 수 있습니다.
인터페이스를 구현한 구현체도 인터페이스가 정의한 속성과 기능을 사용하기 때문에 인터페이스를 물려받는 것이라고 할 수 있습니다.
그리고 Java는 다중 상속을 지원하지 않습니다. 하지만 인터페이스를 통해 다중 상속의 일부 기능을 대체할 수 있습니다. 클래스는 여러 인터페이스를 구현할 수 있으므로 다양한 기능을 갖춘 클래스를 구현할 수 있습니다.