인터페이스의 구조
- 모든 필드가 public static final로 정의
- static default 메서드 이외 모든 메서드는 public abstract로 정의
인터페이스의 상속
- implements 키워드 사용
- 다중 상속이 가능
- 여러 개의 인터페이스를 사용할 때 ,로 구분해 나열
- 모든 필드가 public static final로 정의돼 있어 실제 데이터값은 각각의 인터페이스의 내부에 존재해 공간상 겹치지 않음
- 메서드도 모두 미완성이어서 자식 클래스 내부에서 완성해 사용하므로 문제 x
클래스가 인터페이스를 상속할 때 주의사항
- 자식 클래스는 반드시 미완성 메서드를 구현해야 함
- 자식 클래스의 구현 메서드는 반드시 public이어야 함
인터페이스 타입의 객체를 생성하는 방법
- 인터페이스를 일반 클래스로 상속해 객체 생성
- 익명 이너 클래스를 사용해 객체 생성
인터페이스를 사용하는 이유
: 구현 클래스의 변경을 유연하게 사용 가능
디폴트 메서드
- 인터페이스에 변화가 생기면 해당 인터페이스를 상속받은 모든 클래스에서 오류가 발생 → 이를 보완하기 위해 디폴트 메서드를 추가함
- 디폴트 메서드가 추가될 경우 완성된 메서드이므로 구현 클래스를 반드시 오버라이딩할 필요 없음
- 인터페이스 내부에 속하는 일반 메서드처럼 동작함
자식 클래스에서 부모 인터페이스의 디폴트 메서드 호출 방법
→ 인터페이스는 다중 상속이 가능하기 때문에 부모 인터페이스 중 어떤 인터페이스인지 명시하기 위해 부모 인터페이스명을 추가해 호출해야 함
Static 메서드
클래스 내부의 정적 메서드와 동일한 기능으로 객체를 생성하지 않고 ‘인터페이스명.정적 메서드명’방식으로 호출
'JAVA' 카테고리의 다른 글
| 대표적인 예외의 종류 (0) | 2023.04.02 |
|---|---|
| 예외 (0) | 2023.04.02 |
| 상속 (0) | 2023.04.02 |
| 접근지정자 - Abstract (0) | 2023.04.02 |
| 접근지정자 - Final (0) | 2023.04.02 |
댓글