interface 활용을 같이 공부를 하겠습니다. 이전에서는 계속 상속과 추상화에 대해서 공부와 문제까지 해결을 해봄으로써 상속에 대한 내용과 추상화에 대해서 좀 더 깊이가 생겼다고 생각을 합니다. 이번 걸음에서 상속과 추상화에 대한 마지막 이야기를 해보겠습니다.
interface가 추상화 메소드 이외에는 가지지 못하기 때문에 활용이 적다고 생각을 할 수 있지만 이번 걸음을 통해서 interface에 대해서 좀 더 이해와 실력 향상을 할 수 있습니다.
interface의 태그 기능과 interface를 통해 보안을 향상을 시킬 수 있습니다. 이 2가지에 대해서 설명과 예제를 통해서 interface에 대해서 이해의 폭이 넓어 질 수 있습니다. 이번 걸음을 통해 interface에 대한 한걸음 발전이 될 수 있기를 바랍니다.
interface 태그 기능
interface를 추상화 메소드를 선언을 하는 것이 아니라 그 interface 자체를 사용해서 그 interface를 상속을 받은 자식 class들만 사용이 가능한 Method를 생성을 하거나 구분을 줄 수 있습니다. 마치 태그와 같이 나눌 수 있는 것 같아서 interface에 태그 기능이라고 이름을 붙혔습니다.
interface Asia{}
class Korea implements Asia{
}
class USA{
}
public class Test{
public static asiaCheck(Asia a){
System.out.println("아시아 입니다.");
}
public static void main(String[] args){
Korea k = new Korea();
USA u = new USA();
asiaCheck(k);//정상 동작
asiaCheck(u);//error 발생
}
}
위의 소스처럼 interface의 부모를 상속을 받은 경우에 따라서 동작이 되고 동작이 되지 않기 때문에 태그와 같이 분류가 되어 있기 때문에 사전에 문제를 찾고 수정이 가능해집니다.
interface 보안
interface를 사용해서 추상화된 Method를 상속을 받아서 재정의를 하게 됩니다. 그러면 실제 기능의 정의 되어있는 자식 class가 아니라 부모인 interface만 외부로 노출을 시켜주는 것입니다. 그러면 실제 이 프로그램을 사용을 하는 사람은 정의 되어 있는 기능은 볼 수 없고 추상화 되어 있는 interface만을 볼 수 있게 됩니다.