interface: 객체의 사용 방법을 정의한 타입
- 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다.
- 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있다.(실행내용과 리턴값을 다양화할 수 있다)
[ public ] interface 인터페이스명 { ... }
- 인터페이스는 상수와 메소드만을 구성 멤버로 가진다.
> Constant Field, Abstract Method, Default Method, Static Method
- 인터페이스에 선언된 추상 메소드는 모두 public abstract 특성을 갖기 때문에 생략하더라도 자동적으로 컴파일 과정에서 붙게 된다.
- 인터페이스에 선언된 메소드는 모두 public 특성을 갖기 때문에 생략해도 자동적으로 컴파일 과정에서 붙게 된다.
인터페이스 구현(implements)
- 인터페이스에 선언된 추상 메소드에 대응하는 실체 메소드를 구현 클래스가 작성하지 않으면 구현 클래스는 자동적으로 추상 클래스가 된다. 클래스 선언부 abstract 키워드 추가
익명 구현 객체
인터페이스 변수 = new 인터페이스() {
// 인터페이스에 선언된 추상 메소드의 실체 메소드 선언
};
타입 변환과 다형성
인터페이스 상속
- 클래스와는 달리 다중 상속을 허용
- 하위 인터페이스로 타입 변환이 되면 상/하위 인터페이스에 선언된 모든 메소드를 사용할 수 있으나, 상위 인터페이스로 타입 변환되면 상위 인터페이스에 선언된 메소드만 사용 가능하다.
- 부모 인터페이스에 디폴트 메소드가 정의 되어 있을 경우, 자식 인터페이스에서 디폴트 메소드를 활용하는 3가지 방법
> 디폴트 메소드를 단순히 상속만 받는다
> 재정의해서 실행 내용을 변경한다
> 추상 메소드로 재선언한다
'Java > Java' 카테고리의 다른 글
[이것이자바다]11. 기본 API 클래스 (0) | 2020.05.03 |
---|---|
[이것이자바다]7. 상속 (0) | 2020.04.20 |
[이것이자바다]6. 클래스 (0) | 2020.04.19 |
[이것이 자바다]5. 참조 타입 (0) | 2020.04.19 |
[이것이 자바다]3. 연산자 (0) | 2020.04.18 |