추상 메서드로 이뤄진 클래스
디폴트 메서드 / 정적 메서드 / private 메서드
인터페이스의 메서드 = public abstract로 추상 메서드
인터페이스의 변수 = public static final로 상수
클래스에서 인터페이스는 implements함.
추상 클래스와의 차이 : abstract 키워드를 작성하지 않아도 됨!
기본 구현을 가지는 메서드
인터페이스를 구현한 클래스를 공유할 수 있는 기본 메서드
여러 인터페이스를 매번 구현하는 번거로움 방지
재정의 가능
static 키워드로 메서드 구현 가능
인스턴스 생성과 상관없이 바로 사용 가능
인터페이스 타입으로 사용
자바9부터 가능
인터페이스를 구현한 클래스에서 사용하거나 재정의 할 수 없음
인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드
private method의 static 메서드 -> 정적 메서드 사용 가능
private method의 일반 메서드 -> 디폴트 메서드 사용 가능
인터페이스는 구현 코드가 없으며, 여러 개의 인터페이스 implements 가능!!
디폴트 메서드 중복 시 오버라이딩 혹은 하나만 사용하길 추천!
인터페이스가 제공하는 2가지 메서드 :
ascending, descending