728x90

extends는 일반 클래스와 abstract 클래스 상속에 사용되고, implement는 interface상속에 사용된다.
자바에서의 상속은 2가지 형태가 있다.
하나는 extends 이고, 다른 하나는 implements이다.
1. extends는 순수 상속으로 부모로부터 모든 권한과 재산과 능력을 가져 오는 것을 말한다.


2. implements는 하나는 구현 상속 이라고 하는데, 상속이라기 보다는 인터페이스(나는 하나의 뼈대 혹은 방법을 빌어오기만 한다로 표현하고 싶다)만을 얻어 오는 것을 말한다. 즉 extends와 같게 상속은 받지만, 그 상속 내용이 비어 있어서 그 비어 있는 부분을 내가 반드시 채워서 써야 하는 것을 의미한다. 그러므로 여러 interface를 통해서 상속을 받을 수 있다.

이런 비유로 정리를 해보자
"나는 부모로 부터 많은 재산을 물려 받았다. 그렇지만 그 재산을 이용하여 땅투기 사업을 하고 싶다."
이렇게 되면 단순히 재산을 물려 받는 것은 extends 로, 땅투기 사업을 위하여 정보 획득 방법이나 사기 치는 방법들을 이용하여야 나만의 방식으로 투기 사업을 하여야 하므로 implements로 여러 방법을 빌어 와야 하는 것이다. 그러므로 implements는 여러 개의 interface에게서 빌어올 수 있는 것이 된다.
그럼 굳이 interface를 써야 하는 이유는 무엇인가? 이것은 프로그램이므로 하나의 일관된 설계 철학을 가져야 향후 관리적인 측면에 도움이 되기 때문이다.

728x90

'JAVA' 카테고리의 다른 글

만 나이 계산  (2) 2012.09.14
httpsessionlistener  (0) 2012.09.03
hashmap  (0) 2012.09.03
java.io.UTFDataFormatException: Invalid  (0) 2012.08.24
struts 새로고침 방지  (0) 2012.08.21

+ Recent posts