인터페이스
- 객체의 사용 방법을 정의한 타입
- 개발 코드와 객체가 서로 통신하는 접점 역할
인터페이스 선언
- Class대신에 interface 키워드 사용
- 상수와 메서드만 구성 멤버로 가짐
- 인터페이스는 객체로 생성할 수 없으므로 생성자를 가질 수 없음
상수 필드 선언
- 정적 필드를 선언할 수 없음
- 상수를 선언 시, 반드시 초기값을 대입
- public static final로 선언됨(생략해도 컴파일 과정에 자동으로 붙음)
추상 메서드 선언
- 최종적으로 객체에서 실행됨
- public abstract의 특성을 가짐(생략해도 컴파일 과정에 자동으로 붙음)
디폴트 메서드 선언
- 클래스의 인스턴스 메서드와 동일하지만 default 키워드가 리턴타입 앞에 붙음
- public의 특성을 가짐(생략해도 컴파일 과정에 자동으로 붙음)
정적 메서드 선언
- 클래스의 정적 메서드와 완전 동일
- public의 특성을 가짐(생략해도 컴파일 과정에 자동으로 붙음)
인터페이스 구현
- 개발 코드가 인터페이스 메소드를 호출하면 인터페이스는 객체의 메소드를 호출
- 객체는 인터페이스에 정의된 추상메소드와 동일한 메소드 이름, 매개 타입, 리턴 타입을 가진 실체 메소드를 가지고 있어야 함
- 객체를 인터페이스의 구현 객체, 구현 객체를 생성하는 클래스를 구현 클래스라 함