이너 인터페이스(중첩 인터페이스)란
- 이너 인터페이스란 클래스의 멤버로 선언된 인터페이스를 의미한다.
- 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서
// 이너 인터페이스 정의
class OuterClass {
// 이너 인터페이스 생성
static interface InnerInterface {
public 리턴타입 메서드명();
}
}
이너 인터페이스의 특징
- 사용자 인터페이스(UI)의 이벤트 처리에 많이 사용된다.
- 정적 이너 인터페이스만 존재할 수 있다.
- static 제어자를 생략하면 컴파일러가 자동으로 추가한다.
- 컴파일시 '아우터 클래스$이너 인터페이스.class' 형태로 .class파일이 생성된다.
이너 인터페이스 타입의 객체 생성
- 객체 생성 방법으로는 구현한 하위 클래스를 이용한 방법과 익명 이너 클래스를 활용하는 방법이 있다.
- 인터페이스는 자체적으로 객체를 생성할 수 없다.
이너 인터페이스를 구현한 클래스를 이용하여 객체 생성
// 이너 인터페이스를 구현한 클래스 생성
class InnerImpl implements OuterClass.InnerInterface {
@Override
public 리턴 타입 메서드명() {
...
}
}
// 이너 인터페이스 타입의 객체 생성
OuterClass.InnerInterface innerImpl = new InnerImpl();
익명 이너 클래스를 이용하여 객체 생성
// 익명 이너 클래스를 이용하여 객체 생성
OuterClass.InnerInterface innerInterface = new OuterClass.InnerInterface() {
@Override
public 리턴 타입 메서드명 {
// 기능 구현
}
}