오버라이딩과 오버로딩은 자주 나오면서도 중요한 개념이다. 하지만, 그만큼 잘 까먹기 때문에 정리하고 넘어가려 한다.
- 오버라이딩 : 상위 클래스가 가지고 있는 메소드를 하위 클래스에서 재정의해서 사용하는 것을 의미한다.
- 상속 시, 상위 클래스의 private 멤버를 제외한 모든 멤버를 상속받는다.
- 오버로딩 : 같은 이름의 메소드를 여러 개 가지면서 매개변수의 타입과 개수를 다르게 하여 정의하는 것을 의미한다. 즉, 메소드의 시그니처를 다르게 하여 정의하는 것이다.
구분 | 오버로딩 | 오버라이딩 |
---|---|---|
메소드 이름 | 동일 | 동일 |
매개변수, 타입 | 다름 | 동일 |
반환 타입 | 상관 없음 | 동일 |