앞전에 Interface 를 사용하는 이유를 기술 했었습니다.
그런데 개발 하다보니 이 사실을 잊고 개발을 하고 있었어요.
아래와 같은 생성자가 있다고 합시다.
2개의 파라미터
Context 와 EventListener 라는 녀석을 받고 있네요.
public Foo(Context context, EventListener listener)
{
}
EventListener 인터페이스는 아래와 같다고 합시당.
Interface EventListener
{
public void onClick();
}
EventListener 를 implements 하는 Book 클래스가 있다고 합시다.
public class Book implements EventListener
{
public void onClick()
{
}
}
위의 Foo 클래스의 생성자를 호출 할 때,
Book book = new Book();
Foo foo = new Foo(getApplicationContext(), book);
getApplicationContext() 는 안드로이드 Activitiy 안에 있는 내장 함수 입니다^^
book이 EventListener를 임플리먼츠 하고 있기 때문에 book 이 곧 EventListener 입니다.
이런식으로 다형성으로 인해, 생성자 호출이 가능해 집니다.