오버라이딩을 구현할 때 @Override 어노테이션을 사용하는 이유
2023. 10. 24. 00:49ㆍ백엔드/JAVA
오버라이딩 (overriding)
오버라이딩이란 부모 클래스에서 사용되고 있는 메서드를 자식 클래스에서 같은 메서드명, 같은 매개변수의 개수와 타입으로 재정의한 것을 의미
어노테이션 (Annotation)
어노테이션이란 사전적 의미로는 주석, 자바에서는 코드 사이에 @ 기호를 앞에 부여 의미를 부여하는 메타데이터
종류에는 표준 어노테이션 / 메타 어노테이션 / 사용자정의 어노테이션이 있다.
* 메타데이터 : 애리케이션이 처리해야 할 데이터가 아닌 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보.
@Override 어노테이션
@Override 어노테이션이란 자바에서 메서드 오버라이딩을 명시적으로 표시하고 검사하는데 사용되는 어노테이션으로 메서드 선언 코드 위에 추가되며 컴파일러와 다른 개발도구에 해당 메서드가 슈퍼클래스 또는 인터페이스의 메서드를 오버라이딩하고 있다는 것을 알려줌
# 사용방법 예시 코드
@Override
public void methodName() {
// 메소드 구현
}
어노테이션을 사용해야 하는 이유
🔎 어노테이션을 사용하지 않은 경우
class Parent {
public void hello(String name) {
System.out.println("안녕하세요, 저는 " + name + "입니다.");
}
}
class Child extends Parent{
public void hello() {
System.out.println("안녕!");
}
}
- Child 클래스에서 hello 메서드가 오버라이딩 되는것이 아닌 새로운 메서드가 추가된다.
🔎 어노테이션을 사용한 경우
class Parent {
public void hello(String name) {
System.out.println("안녕하세요, 저는 " + name + "입니다.");
}
}
class Child extends Parent{
@Override
public void hello() {
System.out.println("안녕!");
}
}
- @Override를 사용한 경우 Parent 클래스의 hello 메서드와 Child 클래스의 hello 메서드의 매개변수가 일치하지 않기 때문에 컴파일 오류가 발생한다.
🔎 어노테이션을 사용해야 하는 이유
- 오버라이딩 실수 방지
: 매개변수나 메서드명에 오타가 발생한 경우 컴파일 에러를 통해 실수를 바로 잡을 수 있다. - 코드의 가독성 향상
: @Override를 써주면 다른 개발자가 코드를 읽을 때, 해당 메서드가 부모 클래스의 메서드를 오버라이드 하고 있다는것을 쉽게 파악 할 수 있다. - 유지보수와 버그 방지
: 슈퍼클래스의 메서드가 변경 될 때 컴파일러가 오버라이딩 된 메서드의 업데이트 필요성 여부를 알려주어 유지 보수를 용이하게 하고 버그를 방지하는데 도움을 준다. - 문서화와 자동완성 지원
: IDE에서 자동완성 및 문서화 도구를 지원하기 때문에 개발자는 오버라이드 가능한 메서드 목록을 쉽게 확인 할 수 있으며, 문서화 작업을 효과적으로 할 수 있다.
'백엔드 > JAVA' 카테고리의 다른 글
JVM 그리고 코드를 실행하는 과정에 대하여 (0) | 2024.02.03 |
---|---|
멀티모듈 적용하기 (2) | 2024.01.18 |
repeat() : 문자열 반복 (0) | 2023.12.02 |
인터페이스가 가지고 있는 객체 지향의 특징 (1) | 2023.10.21 |
객체 지향의 4가지 특징 (1) | 2023.10.20 |