
역할
1. 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다.
2. 개발 코드와 객체가 서로 통신하는 접점의 역할
직접 객체의 메소드를 호출하면 간단한데 굳이 인터페이스를 중간에 두는 이유?
이유
1. 개발 코드의 수정 없이 사용 객체를 변경할 수 있도록 하기 위해. ▶ 개발 시간 단축
구성요소
public || default interface HUMAN {
//상수 필드
// 추상 메소드
void wakeUp(int time);
void sleep(int time);
// 디폴트 메소드
default void getSleepPattern(int sleepTime) {
if(sleepTime >= 8) {
System.out.println("수면 시간 충분");
} else {
System.out.println("수면 시간 부족");
}
}
// 정적 메소드
static void takeShower() {
System.out.println("샤워를 합니다.");
}
}
인터페이스 구현 클래스
implements 키워드를 통해 구현한다.
상속 vs 인터페이스
: 근래에는 인터페이스를 통해서 다형성을 구현하는 경우가 더 많다고 한다.
🧐 다형성?
: 하나의 타입에 대입되는 객체에 따라서 실행 결과가 다양한 형태로 나오는 성질
그럼 상속과 인터페이스는 어떻게 다를까?
상속 ▶ 같은 종류의 하위 클래스를 만드는 기술, 일반 메서드 + 추상 메서드
인터페이스 ▶ 사용 방법이 동일한 클래스를 만드는 기술, 추상 메서드