달력

122024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
프로그래밍/JAVA 2016. 9. 23. 10:18


Implementation (impl) 을 만들때 @Override 를 붙여야하는 이유

http://nestofeagle.egloos.com/1805492

얼마전에 우연하게 IDE(이클립스) 기능을 사용하다가 발견한 의문점에 대한 해답이다

서비스 로직을 만들기 위하여 인터페이스 (interface) 를 작성하고

pubblic interface programService {
public List getProgramList() {
}
}

해당 소스를 작성하고 impl 에다가 자동완성 기능을 사용하기 위해서 getProgramList() 를 자동완성 시켰는데

public class programServiceImpl implements programService {
@Override
public List getProgramList() {
// 자동완성 
}
}

응? 왜 @Override 가 생겼지? 의문점이 생겼다

물론 생겨도 코드를 작동시키는데 아무런 문제가 없고, 이 @Override 문을 삭제하여도 아무런 문제가 없다

그런데 어째서..이런 의미없는 코드를 IDE에서 지원해 주었을까 의문이 생겨 우리들의 신 구글님께 질문해보았다





스택오버플로우 사이트의 답변을 종합하면 이렇다
  1. 당신이 작성한 것은 추상화 ( interface ) 클래스이다
  2. 추후에 당신이 추상화 클래스를 변경하거나 메소드를 삭제할 경우
  3. 당신에게 impl 의 소스가 연결되어 있어 당신이 이것도 같이 수정해야한다고 알려줄 수 있다는 것이다
  4. 즉 이것은 미묘하게 발생할 수 있는 버그를 컴파일러 단계에서 알아차리게 해준다
가장 중요한 것이다 [ 미묘하게 발생할 수 있는 버그를 컴파일러 단계에서 수정할 수 있도록 도와준다 ] 

출처 : http://egloos.zum.com/nestofeagle/v/1805492


'프로그래밍 > JAVA' 카테고리의 다른 글

[Java] 자바 기본 API - Class Class  (0) 2016.09.23
Forward와 Include의 차이점  (0) 2016.09.23
Spring - Ioc & DI  (0) 2016.09.23
StringUtils  (0) 2016.09.23
Java Collection Framework (JCF)  (0) 2016.09.23
Posted by 당구치는 개발자
|