인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

LUA님의 프로필 이미지

작성한 질문수

예제로 배우는 스프링부트 입문

(02) Java Code로 DI 사용하기

@Override 는 어떨때 사용하는지 궁금합니다.

작성

·

5.3K

0

Print라는 interface를 implements 할때 @Override라는 어노테이션을 붙이던데요, 이게 왜 붙어야 하는지 어떤 역할을 해주는지가 궁금합니다..

interface를 implement했기 때문에 print 메소드가 오버라이드인것은 알겠는데 굳이 @Override 애노테이션을 왜 붙어야 하는것인지 주로 어떤이유와 상황에서 사용되는지 궁급합니다.

자바스크립트만 공부하고 리액트로 프론트업무를 하다가 스프링부트 개발로 전향하려고 나름 공부를 하고는 있는데 의문이 생기는 부분이 많습니다..ㅜㅜ 앞으로도 질문을 많이드릴것 같아 상황에 대해 주절주절 언급드렸습니다!

답변 1

7

이재환님의 프로필 이미지
이재환
지식공유자

상속받은 메서드를 재정의할 때 메서드 이름이 틀리지 않게 쓰기 위한 어노테이션입니다~

가령 부모 객체에 printerA 라는 메서드가 있고 상속을 받은 객체에서 printerA 를 재정의해서 쓰고 싶을 때 만약 printerAA 라고 오타를 입력하고 만들 수 있습니다.

이 경우 @Override 어노테이션이 붙어 있었다면 부모 객체엔 이런 메서드가 없어 하고 에러를 내 줍니다.

@Override 어노테이션이 붙어 있지 않았다면 상속 받은게 아니고 그냥 새로운 메서드를 만들어 쓴 것이기 때문에 컴파일러는 에러를 내지 않습니다.

결론적으로, 사람의 실수를 막아 주기 위한 어노테이션입니다 ^^

LUA님의 프로필 이미지

작성한 질문수

질문하기