[JAVA] 오버로딩(Overloading), 오버라이딩(Override)

임유빈·2022년 7월 19일

JAVA

목록 보기
7/17
post-thumbnail

1. 오버로딩(Overloading)

(1) 개념

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

(2) 조건

메소드명이 같고, 매개변수의 개수나 타입이 달라야 한다, 주의점은 리턴 값만 다른 것은 로버로딩을 할 수 없다.

2. 메소드 재정의(Override)

(1) 개념

상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것이다.

(2) 조건

  • 메소드의 동작만을 재정의하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 한다. (하지만 메소드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경할 수 있다.)

  • 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다.

  • 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다.

  • 오버라이딩은 어노테이션에 속한다.

0개의 댓글