개요
해당 포스팅에서는 오버로딩과 오버라이딩에 대해서 간략하게 정리해 보고자 한다.
오버로딩(overloading)
오버로딩이란 하나의 클래스에 같은 이름의 메서드를 여러 개 정의하는 것이다.
기존에 없는 새로운 메서드
를 정의하는 것 (new)
오버라이딩의 조건
- 메서드의 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다. (리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 않음)
오버라이딩(overriding)
오버라이딩이란 조상 클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것이다.
상속받은 메서드의 내용을 변경
하는 것 (change, modify)
오버라이딩의 조건
- 선언부가 같아야 한다. (이름, 매개변수, 리턴타입)
- 접근제어자를 좁은 범위로 변경할 수 없다.
- 조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
참조
Java의 정석 기초편 (남궁성 지음)