java - @Override

Development/Java 2012. 11. 3. 11:23


jdk 5에서부터 추가된 또하나의 기능인 @Override를 소개하고자 한다.

머 이미 쓰는 사람들은 많이 있겠지만

이제사 1.4를 벗어나려고 버둥대는 터라...*^^*

(쓰고 싶어두 기존 소스와의 유지 및 개발환경에 써보질 못했다는 핑계거리....)

 

@Override란 위에서 말한바와 같이 jdk5에서부터 추가된 annotion의 하나이다.

말그대로 상위 클래스에서 오버라이드한 메소드라는 것을 지칭한다.

 

public class HelloServlet extends HttpServlet{

@Override

public void doGet(HttpServletRequest request,HttpServletResponse response)

    throws IOException,ServletException{

    -- to_DO --

}

}

 

위의 경우 HelloServlet은 HttpServlet에서 정의한 doGet()을 오버라이드 하고 있다.

물론 @Override를 사용하지 않아도 되지만

 

이 때 @Override 를 붙임으로써 doGet() 가 상위클래스에서 오버라이드된 메소드임을 지정함으로써

개발자가 메소드명이나 파라미터를 잘못 쓰고 찾지 못하는 것을 방지해준다.

 

즉 @Override를 상위클래스에 정의되지 않은 메소드에 쓰는 경우 컴파일 에러를 발생하기 때문에

혹여나 발생할수 있는 문제의 소지를 예방할 수 있게 해주기 때문에

오버라이드한 메소드에 대하여 @Override라는  annotation을 써주는 것이 좋다.


출처 - http://civan.tistory.com/entry/Override-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0




메소드 오버라이드는 OOP 프로그래밍에서 매우자주 많이 사용되는 방법이다. 

간단히 도표를 그려봣다.

위의 그림과 같이 클래스 A, 클래스 B, 그리고 클래스 C의 3가지 클래스가 있다. 상위클래스인 A로두터 ClassC로 가면서 화살표 방향으로 상속을 받는데. 클래스B에서 상위클래스의 메소드 A랑 똑같은 이름으로 된 메소드를 만들면 클래스B의 메소드A는 클래스A의 메소드A가 아닌 클래스B에서 정의된 메소드 A가 되어버린다. 이렇케 새로운 메소드로 덮어씨워서 실행시키는것 이것을 오버라이드(override)라고 하는데 이러한 개념은 상당히 자주 사용되어지는 방법이니 꼭 외워두는 것이 좋을 것이다. 앞으로 아마도 나도 앱개발할때 뻔질나게 쓰겠지만 이글 보시는 분도 뻔질나게 쓰실꺼다.


출처 - http://blog.daum.net/3dweb/2999609

'Development > Java' 카테고리의 다른 글

java 로드맵  (0) 2012.11.07
java - enum  (0) 2012.11.05
java - 문자열, 숫자, 영문 배열 및 list 정렬(sort)  (0) 2012.11.02
java - 클래스 구조 및 헬퍼 클래스(helper class)  (0) 2012.10.30
java - File 클래스  (0) 2012.10.23
Posted by linuxism
,