@) 참고
- 제이온 - [Java] 오버로딩과 오버라이딩
오버로딩과 오버라이딩은 모두 객체지향의 특징 중 하나인 다형성을 지원하는 방법
오버로딩
- 한 클래스, 인터페이스 내에서 같은 이름의 메서드를 여러 형태로 가지는 것
- 일반적으로 다양한 방식으로 인자를 전달받는 같은 기능을 하는 메서드를 정의하기 위해 사용
- 가장 많은 파라미터를 가진 메서드에서만 메서드를 정의하고
- 나머지에서는 자신의 파라미터를 포함하는 메서드를 호출하는 식으로 구현됨
- 컴파일 타임의 다형성이라고 할 수 있음
오버라이딩
- 상속된 클래스에서 부모 클래스에 존재하는 메서드를 재정의하는것
- 부모의 메서드와 같은 메서드 시그니처 (메서드 이름, 파라미터 종류, 순서)를 가진 메서드를 자식클래스에서 재정의(Override)하는것
- 런타임의 다형성이라고 볼 수 있음 (동적 메소드 디스패치)