본문 바로가기
Java

[Java] 오버라이딩(Overriding)과 오버로딩(Overloading)

by 나는 개발자 2021. 1. 14.
TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.

 

오버라이딩(Overriding)

메소드 재정의라고도 부른다. 

상속받고 있는 부모클래스의 메소드를 자식메소드에서 새롭게 정의하는 것
재정의할 때 메소드 상단에 @Override 어노테이션을 사용하는 것이 매너이다.

(어노테이션(Annotation): 재정의했다는 것을 알려주는 목적으로 사용하며 어노테이션을 붙여준 경우엔 메소드 이름을 동일하게 작성해야한다.)

 

 

성립조건

부모클래스의 메소드와 자식클래스의 메소드는

- 메소드명, 매개변수의 개수, 타입, 반환형 동일해야하며

- 접근제어자를 부모클래스와 같거나 보다 넓은 범위로 변경할 수 있다.

- private 메소드는 오버라이딩이 불가하다.

- 자식클래스에서 재정의된 메소드가 우선권을 가지면서 실행된다.

 

 

 

오버로딩(Overloading)

한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는 것

같은 메소드명을 가지고 있어도, 매개변수가 다르면 다르게 인식한다.

메소드의 리턴타입은 오버로딩 조건과는 관계가 없다.

 

 

 

 

 

 

 

 

 


오버라이딩 VS 오버로딩

 

댓글