[자바 라이브 스터디] 8주차 - 인터페이스1. 인터페이스 정의하는 방법2. 인터페이스 구현하는 방법3. 인터페이스 상속4. 인터페이스의 기본 메소드 (Default Method), 자바 85. 인터페이스의 static 메소드, 자바 8
[자바 라이브 스터디] 8주차 - 인터페이스
- 목표) 자바의 인터페이스에 대해 학습하세요.
1. 인터페이스 정의하는 방법
- 정의) 다른 클래스 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
- 특징) 추상클래스와 차이점
- 추상클래스
- 추상 메서드 외에도 일반 메서드와 멤버 변수를 가질 수 있음
- 인터페이스
- 일반 메서드와 멤버 변수를 가질 수 없음
- 예외) JDK1.8부터 static 메서드와 default 메서드는 허용됨
- 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있음
- 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있음
2. 인터페이스 구현하는 방법
- 구현 클래스
- 정의)
- 특징)
- 인터페이스 메서드 중 일부만 구현한다면, abstract 붙여서 추상클래스로 선언해야 함
- 상속(extends)와 구현(implements) 동시에 할 수 있음
- 익명 구현 객체
- 정의)
- 특징)
- 재사용하지 않고 일회성으로 사용할 때 효율적
3. 인터페이스 상속
- 정의) 인터페이스는 인터페이스로부터만 상속 받을 수 있음
- 특징)
- 클래스와 달리 다중상속 가능
- static 상수만 정의할 수 있어서 조상의 멤버 변수와 충돌할 일 거의 없음
- 클래스와 마찬가지로 자손은 조상의 모든 멤버 상속받음
4. 인터페이스의 기본 메소드 (Default Method), 자바 8
- 정의) 인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법
5. 인터페이스의 static 메소드, 자바 8
- 정의) 인스턴스와 관계 없는 독립적인 메서드라 인터페이스에 추가하지 못할 이유가 없어서 JDK 1.8부터 추가됨
- 특징)
- override가 안됨
- 인터페이스 타입 직접 참조해 호출해야 함

![[백기선 자바] 인터페이스](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F301eb74c-edaf-492f-9dca-9be8a3bbf75e%2F%25EC%25BA%25A1%25EC%25B2%2598.jpg?table=block&id=c7a2166f-ce13-40e8-ac39-004feb895c7c&cache=v2)