몇일전 회사 대리님의 한 말씀.....
" 난 아직도 인터페이스를 왜 사용하는지 모르겠다 " 라고 하셨다..
나 조차 자바개발자로서 인터페이스의 기능과 문법은 알고있지만 지금까지도 왜?왜?왜? 사용해야하는지 자세히 알지는 못하였다.
오히려 불필요하다고만 생각해왔을뿐..
하지만 인터페이스는 오픈소스인 스프링, 스트럿츠에 많이 사용되어져 있고 다른 프로젝트의 소스코드를 보아도 조금씩은 들어가 있기에 이번 기회에 완벽히 습득을 하고자 공부를 해봤다.
1. 먼저 interface는 다른 클래스의 멤버들과 달리 다음과 같은 제약사항을 가지고 있다.
- 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.
- 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다.
2. 인터페이스의 추상메서드의 몸통을 구현하는 자손클래스를 작성해야하는데 이때 인터페이스를 구현한다고 하며 키워드 implements를 사용한다.
3. 인터페이스 이름은 주로 playable과 같이 ~를 할 수 있는 의미인 able로 끝나게 작성한다. (권장)
4. 인터페이스를 구현한 자손 클래스는 인터페이스의 멤버 접근자보다 넓은 범위의 접근제어자를 지정해야 한다.
- interface의 멤버 void a(int a, int b) <-- 이 넘을 자손 클래스에서 구현할때 private void a() 이런식으로하면 에러
여하튼 다른 사람들이 인터페이스를 왜 사용해야 하느냐고 물어볼때는 확장성과 코드의 유연함이 주 목적이라고 말해야겠다.
'프로그래밍' 카테고리의 다른 글
getter, setter 자동 생성 라이브러리 lombok (0) | 2012.10.23 |
---|---|
properties 너가 날 엿 먹이는 구나~ (0) | 2012.04.14 |
메인 도메인과 서브 도메인 세션 공유 문제 (0) | 2012.04.14 |
ant를 이용한 ftp 업로드 (0) | 2009.04.01 |
Generic과 Auto-boxing (1) | 2009.03.15 |
날짜함수 (0) | 2009.02.21 |
오라클 잠금 기능 (0) | 2009.01.02 |
BLOB 사용 예제 (0) | 2008.12.31 |