컴퓨터 프로그래밍에서 사용하는 인터페이스는 '서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 부분 또는 그런 접속 장치'라고 정의할 수 있다. 하위 클래스가 여러 상위 클래스를 상속받을 수 있다면 다양한 동작을 수행할 수 있지만, 이러한 경우 메서드 출처의 모호성 등 여러 문제가 발생할 수 있기에 자바 프로그래밍에서는 클래스를 통한 다중 상속을 지원하지 않는다. 하지만 다중 상속의 이점을 살리기 위해 자바는 인터페이스라는 것을 통해 다중 상속을 지원한다. 기본적으로 인터페이스도 추상 클래스처럼 자바에서 추상화를 구현하는 데 사용되는 점은 동일하지만, 추상 클래스에 비해 더 높은 추상성을 가진다는 점에서 큰 차이가 있다. 추상 클래스를 설계가 모두 끝나지 않은 '미완성 설계도'에 비유한다면 ..