상세 컨텐츠

본문 제목

[CafeStory]interface에 관한 면접이야기..

카페 Story

by HeyLee 2011. 4. 16. 19:53

본문

회사 취업 때문에 기술 면접을 보러 가서 자바에 관한 질문을 받게 되었다..

면접관 Q : "Interface의 사용하는 목적이 뭐고 사용하는방법에 대해서 설명해주세요"

그때 필자는 리모컨에 비유해서 설명을 하였는데 최상위 회사에서 물건을 내 놓을때
인터페이스라는 틀을 만들어줘서 채널을 올리거나 내리거나 여러 리모컨 동작에 대해서 
하부 여러 회사들이 자기회사에 맞게 재정의 해서 사용하는것입니다 라고 설명했다. 

면접관 Q "그러면 그걸 왜 사용하는것이죠? 목적이 뭔가요..클래스에 비교해서 설명하면 좋을꺼 같은데.."

에...시험보러 가면 알던거 설명하는것도 깜깜해진다고 하지 않았던가... 그당시 생각이 안나서..
"다형성을 지원하기 위해서 사용됩니다.. " 라는 식으로 대답을 마무리 지었다.. 그후 왈...

면접관 "변칙적인 다중상속을 위해서 사용되어지죠 " 

그떄서야 필자는 아....맞다... 이 생각이..들었다. 면접 볼때 정확히 정리안된 지식들은 어디가서 자유롭게 발언하기도 그렇다는걸 꺠닫고 지금 와서 블로그에 공부겸 다시 정리합니다.


자바는 기본적으로 다중상속을 하지 못하도록 해놓았다..  
기본적으로 중복상속을 못하게 해놓은 것은 다음 예에서 볼수있다.

A라는 아버지를 두고있는 자식 B,C가 있다.
그런데 이 B와 C를 아버지 두게 된 D가 생기다면 

D는 A라는 아버지를 두개 가지게 되버림으로써 아버지 A를 사용할떄 B의 아버지 인지 C의 아버지 인지라는 모호함이 
생겨버리게 된다.

그렇게 되어 자바에서는 기본적으로 단일 상속만되는데.이것을 해결하기 위해서 클레스의 한종류인 interface를 중복 상속개념으로 사용된다.

사용하는 방법으로는 implements를 사용하여 사용 하고 interface도 class의 개념으로 사용되기 떄문에 upcasting도 지원된다.

또한 interface는 implements를 사용해서 모든 메서드를 구현해주지 않으면 에러가 발생한다.

 

관련글 더보기

댓글 영역