중첩 인터페이스
public class 클래스명 {
interface 인터페이스명 {
...
}
}
- 클래스의 멤버로 선언된 인터페이스
- 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서입니다.
- 주로 UI 프로그래밍에서 이벤트를 처리할 목적으로 많이 활용
예시
중첩 인터페이스 OnSlideListener를 가지고 있는 클래스 SlideGesture
public class SlideGesture {
// 인터페이스 타입 필드
OnSlideListener onSlideListener;
// 다형성(매개 변수)
public void setOnSlideListener(OnSlideListener onSlideListener) {
this.onSlideListener = onSlideListener;
}
void slide() {
onSlideListener.onSlide();
}
//==중첩 인터페이스==//
interface OnSlideListener {
void onSlide();
}
}
구현체 UpSlideListener
public class UpSlideListener implements SlideGesture.OnSlideListener {
@Override
public void onSlide() {
System.out.println("화면 잠금 해제");
}
}
구현체 DownSlideListener
public class DownSlideListener implements SlideGesture.OnSlideListener {
@Override
public void onSlide() {
System.out.println("화면 잠금");
}
}
실행
SlideGesture slideGesture = new SlideGesture();
slideGesture.setOnSlideListener(new UpSlideListener());
slideGesture.slide(); // 화면 잠금 해제
slideGesture.setOnSlideListener(new DownSlideListener());
slideGesture.slide(); // 화면 잠금
'Backend > 객체 지향 프로그래밍' 카테고리의 다른 글
[Java] 익명 객체 (Anonymous Object) (0) | 2022.04.29 |
---|---|
[Java] 인터페이스의 타입 변환과 다형성 (0) | 2022.04.24 |
[Java] 인터페이스 익명 구현 객체 (0) | 2022.04.23 |
[Java] 객체의 다형성 구현 (인터페이스) (0) | 2022.04.22 |
[Java] 객체의 다형성 구현 (추상 클래스) (0) | 2022.04.20 |