David의 비하인드 코드 | 왜(Why)에 집중하는 개발 기록

[Java] 상속한 메소드를 재정의하는@Override 어노테이션 본문

프로그래밍/Java

[Java] 상속한 메소드를 재정의하는@Override 어노테이션

David 리 2025. 7. 24. 16:20
반응형

[오버라이드란]

 부모-자식 클래스가 있다고치자. A / B클래스로 B클래스는 A (부모)클래스를 상속받았다고 가정할 때,

B클래스에서 A클래스의 메소드를 재정의 해야한다.

메소드 시그니처 (파라미터 타입, 이름, 반환 타입)가 동일하게 구현해야 하는것이 오버라이드의 개념이라고 할 수 있다.

 

그리고 @Overrdie 어노테이션 역할은 단순하게 개발자나 자바 컴파일러에게
"부모 클래스에 메소드를 재정의 한거야"라고 힌트를 주는 것이다.

 

그렇다면 상속 관계에서 @Overrdie 어노테이션을 꼭 써야 할까??

내가 오버라이드에 대해 포스팅을 하자고 마음먹은 이유였다.

결론을 먼저 말하자면 '권장'은 하지만, 굳이 안써도 된다.

 

이유는 앞서 말했듯이

@Overrdie 어노테이션 역할은 개발자나 자바 컴파일러에게 힌트를 주는 것이다.

어노테이션이 없어도 컴파일러가 재정의한 메소드 시그니처가 부모 메소드 시그니처와 동일한지 알아서 판단하기 때문에 

아무 에러 없이 개발이 가능한 것이다!!

 

개발하다가 무심코 지나쳤던 부분에서 몰랐었던 이유를 알게되면 공부가 재밌어지는 느낌이 든다!

어쨌든 이것으로 포스팅을 마치겠다!

 

 

 

반응형