본문 바로가기
JAVA/기초( 기본 상식)

오버로딩과 오버라이딩

by bang-geus 2024. 8. 7.

오버로딩?

자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입을 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다.

즉, 이름은 같되 매개변수의 개수나 타입은 달라야 한다.

오버로딩을 사용하는 이유?

같은 기능을 하는 메소드를 동일한 이름으로 정의할 수 있다.

 

사용 예시,

오버라이딩?

부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩 이라고 한다.

자식클래스에서는 오바라이딩하고자 하는 메소드의 이름, 매개변수, 리턴값이 모두 같아야 한다.

- @Override 어노테이션을 쓰는 이유

@Override 어노텡이션은 없어도 오버라이딩이 적용되어 정상적으로 잘 동작한다. 그렇다면, @override 어노테이션을 왜 쓸까?

1. @override 어노테이션은 시스템에서 오버라이딩한 메서드라고 알리는 역할로 오버라이딩이 잘못된 경우 경고를 준다.

예) 백엔드 단에서 사용되던 라이브러리 중 업데이트 되어 상속하는 클래스 메소드의 시그니처가 바뀌었다.

@override 어노테이션이 적용되지 않은 상태에서 전에 오버라이드 한 메소드가 업데이트 이후 그냥 추가적인 메소드로 인식되어 컴파일 오류가 발생하지 않는다. 이때 @override 어노테이션을 적용함으로써 의도적으로 컴파일 오류를 일으켜 작동방식이 바뀌는 것을 대비할 수 있다.

2.  @Override를 표시함으로써 코드 리딩 시에 해당 메소드가 오버라이딩하였다는 것을 쉽게 파악할 수 있다는 장점이 있다.

 

 

참고 사이트

https://hyoje420.tistory.com/14