추상 클래스 VS 인터페이스

자바에서 가장 중요한 개념이지만 그 내용을 명시화 하기 힘든 기능이기도 해서
다시 한 번 정리해 보기로 했다.

추상 클래스 (abstract class)
 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다.
추상 : 개념에서 공통된 성질을 뽑아 이를 일반적인 개념으로 파악하는 정신 작용
추상 메소드 : 설계만 해 놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메소드

인터페이스 (interface)
 일종의 추상 클래스로 인터페이스는 추상클래스처럼 추상메서드를 갖지만
추상클래스 보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드
또는 멤버변수를 구성원으로 가질 수 없다 오직 추상 메서드와 상수만을 멤버로 가질수 있다

인터페이스 사용시 이점
1. 개발시간을 단축 시킬수 있다.
    동시에 다른 한 쪽에서는 인터페이스를 구현하는 클래스를 작성 하도록 하여 동시개발 가능
2. 표준화가 가능하다
    개발자들에게 인터페이스를 구현하여 프로그램을 일관되고 정형화된 프로그램의 개발이 가능하다
3. 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
    조상 클래스를 가지고 있지 않은 서로 관계없는 클래스들 에게 하나의 인터페이스를 제공함으로서
    관계를 맺어 줄 수 있다.
4. 독립적인 프로그래밍이 가능하다
    구현부와 선언부를 분리 시킬 수 있기때문에 실제 구현에 독립적인 프로그램을 작성하는 것이 가능하다.

추상클래스를 부분적으로 완성된 미완성 설계도라고 한다면
인터페이스는 구현된 것이 아무것도 없고 밑그림만 그려져 있는 기본 설계도 라고 생각하면 좋겠다
그리고 추상클래스는 상속 계층에서 책임을 지는 부모 클래스로만 만드는 것이 좋고
인터페이스는 다른 클래스와의 관계만 기술 하므로 구현이 없는 것이 좋다.

by darkmirr | 2009/04/20 10:01 | JAVA | 트랙백 | 덧글(1)

트랙백 주소 : http://darkmirr.egloos.com/tb/1377929
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by breakpoint at 2009/06/14 17:03
굉장히 깔끔한 정리 감사합니다.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶