인터페이스

추상클래스보다 추상성이 더 심화된 개념입니다.

추상클래스보다 더욱 강력한 추상화를 제공하는 도구이고, 그를 통해 다형성을 더욱 강력하게 해주는 도구입니다.

상수나 추상메소드 이외에 따로 정의되어있는것이 없어서 (JDK 1.8 이전 기준) 다중 상속의 문제 없이 비슷한 효과를 낼 수 있는 도구입니다.

대표적으로 List같은경우도 인터페이스입니다.

https://docs.oracle.com/javase/8/docs/api/java/util/List.html

https://docs.oracle.com/javase/8/docs/api/java/util/List.html

ArrayList는 그 Interface를 구현한 클래스입니다.

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html