새소식

JAVA (개념, 알고리즘)

오버라이딩과 오버로딩

  • -

오버라이딩

- 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것.

- 자손 클래스 자신에 맞게 변경해야 하는 경우가 많다.

 

(1) 오버라이딩의 조건

메서드의 선언부(메서드 이름, 매개변수, 반환타입)는 조상의 것과 완전히 일치해야 한다.

단, 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다.

조건 1

-> 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.

- 만일 조상 클래스에 정의된 메서드의 접근 제어자가 protected라면, 이를 오버라이딩하는 자손 클래스의 메서드는 접근 제어자가 protected나 public이어야 한다. 대부분의 경우 같은 범위의 접근 제어자를 사용한다. 

 

조건 2

-> 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.

 

정리 1)

조상 클래스의 메서드를 자손 클래스에서 오버라이딩 할 때

1. 선언부가 조상 클래스의 메서드와 일치해야 한다.

2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.

3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.

 

 

오버로딩

오버로딩은 기존에 없는 새로운 메서드를 정의하는 것을 말한다.

반면, 오버라이딩은 상속받은 메서드의 내용을 변경하는 것을 말한다.

'JAVA (개념, 알고리즘)' 카테고리의 다른 글

1. 문자열(String)  (0) 2023.01.14
Comparator와 Comparable  (0) 2023.01.04
상속과 포함관계  (0) 2022.12.28
생성자  (0) 2022.12.22
객체배열과 클래스  (0) 2022.12.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.