인터페이스도 일종의 추상클래스
인터페이스는 추상클래스보다 추상화 정도가 높아서 구현부를 지닌 일반 메서드 또는 멤버변수를 가질 수 없다
오직 추상메서드와 상수만을 구성원으로 가질 수 있다
- 든 멤버변수는 public static fianl 이어야 하며, 이를 생략할 수있다.
- 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다.
단 static메서드와 디폴트 메서드는 예외이다.(jdk1.8부터)
인터페이스는 인터페이스로부터만 상속받을 수 있다. 클래스와는 다르게 다중 상속이 가능하다.
- 추상클래스는 extends 키워드를 통해 구현했다면 인터페이스는 implements 키워드를 사용한다.
인터페이스의 장점
- 각자의 부분만 따로 나눠서 작성된 코드를 컴파일 할 수 있다.
- 정형화된 개발을 강요할 수 있다.
- 클래스들끼리의 쓸데없는 상속을 줄일 수 있어서 종속성을 줄인다.