예전부터 인터페이스라는 것을 잘 이해를 못하고 있었는데...이번 안드로이드 앱 개발하면서 인터페이스가 하도 여기저기 나와서... 자료를 찾아본 결과..

인터페이스라는 것은 각기 다른 경우에서 같은 동작에 대해 각각 다른 기능을 부여할 때 코드를 줄일 수 있게 해준다...라는 생각에 도달했는데요...

음.. 예를 들면 버튼이 4개 있고(각기 다른경우), 각 버튼을 클릭(같은 동작)하면 각각 A, B, C, D 액티비티로 넘어가는(각각 다른 기능) 코드를 만든다고 생각하면요...

public class A extends Activity
{
  findViewById(버튼리소스1).setOnClickListener(new 리스너{onClick(View v){}});
  findViewById(버튼리소스2).setOnClickListener(new 리스너{onClick(View v){}});
  findViewById(버튼리소스3).setOnClickListener(new 리스너{onClick(View v){}});
  findViewById(버튼리소스4).setOnClickListener(new 리스너{onClick(View v){}});
}

이렇게 해야 할 코드를

public class A extends Activity implements View.OnClickListener
{
  findViewById(버튼리소스1).setOnClickListener(this);
  findViewById(버튼리소스2).setOnClickListener(this);
  findViewById(버튼리소스3).setOnClickListener(this);
  findViewById(버튼리소스4).setOnClickListener(this);

  public void onClick(View v)
  {
        //if 나 switch로 v가 어떤 버튼인지 체크한후 그에 따른 코드 작성
  }
}
이렇게 줄일 수 있다는 거죠... 인터페이스라는 것이 이런 경우를 위해 만들어진 건가요..?