인터페이스 : 추상 메서드로 이뤄진 클래스
디폴트 / 정적 / private 메서드
인터페이스의 메서드 = public abstract로 추상 메서드
인터페이스의 변수 = public static final로 상수
클래스에서 인터페이스는 Implement
추상 클래스와의 차이 : abstract 키워드를 작성하지 않아도 됨
상위 클래스 혹은 인터페이스 이름 설정 이유 : 다형성 구현을 위해서
인터페이스의 기본 요소 : 상수, 추상메서드
static int total(int[] arr){
int total = 0;
for(int i : arr){
total += i;
}
return total;
}
extends 뒤에는 단 하나의 class만 사용 가능
구현 코드가 없음. 디폴트 메섣, 정적 메서드의 경우 생성 시 사용이 가능함. 바로 accept도 가능!
여러 개의 인터페이스 implements 가능~!
모듈을 사용하는 클라이언트가 구현 여부 및 내용과 상관없이 메서드 기반으로 사용 가능
인터페이스 설계 -> 클래스 구현 -> Client Code 설계된 메서드 기반 사용