1. 오버로딩(Overloading) 이란?
ㅇ [일반] 과적(過積) 또는 과 부하(過負荷)
- 즉, 필요 이상으로 많이 싣는 것을 의미
. 例) 설계 한계를 넘어선 하중 등
ㅇ [프로그래밍] ☞ 다형태성 참조
- 같은 이름,표기가, 프로그램의 문맥에 따라, 여러 다른 형태나 동작을 할 수 있는 능력
. 여러 다른 동작들에 동일 이름을 부여할 수 있게 하는 것
2. [프로그래밍] 오버로딩(Overloading)
ㅇ [연산] 연산자 오버로딩 (Operator Overloading)
- 동일 연산자 표기 이라도,
. 여러 다른 자료형의 값들에 대해 다르게 정의되어 있어서,
. 피 연산자 자료형을 판별하여, 이에 맞게 정의된 연산 기능을 가져다 씀
- 결국, 같은 연산에 대해서도 여러 클래스들이 서로 다른 동작을 할 수 있는 능력
- 例) 정수형,실수형,복소수형 끼리의 덧셈은, 실제 내부 연산 동작은 무척 다름
. 그러나, 같은 덧셈 기호 + 를 쓸 수 있으면, 사용자에게 논리적 일관성과 편의성을 줌
ㅇ [명령형 프로그래밍] 함수 오버로딩 (Function Overloading)
- 같은 이름을 갖으나, 인수의 자료형,인수의 수,인수의 나열 순서가 다른 여러 함수들
. 즉, 인수(파라미터) 구성이 다르나, 같은 이름의 함수를 쓸 수 있음
. 결국, 같은 함수명으로써 구현이 다른 여러 함수를 작성할 수 있음
. 오버로딩된 함수들은 인수 구성의 차이로써 식별이 됨
ㅇ [객체지향 프로그래밍] 메소드 오버로딩 (Method Overloading)
- 통상, 클래스 내 보통 하나의 메서드 이름에 하나의 기능 만을 구현하는데,
. 하나의 메서드 명으로 여러 기능/연산들을 구현하기 때문에 이름 붙여짐
- 즉, 하나의 클래스 내 또는 상속 관계에 있는 클래스들 간에,
. 같은 이름을 갖는 메소드가 다른 작업을 할 수 있게 함
- 하나의 클래스 내에 동일한 이름의 메소드가 존재하거나,
. 혹은, 하위 클래스에서 상위 클래스에 있는 `같은 이름의` 메소드를 재 선언하여 사용하는 것
- 메소드명 만 같고, 인수의 타입이나 인수의 수가 다름
※ 오버로딩, 오버라이딩 비교 ☞ 오버로딩 오버라이딩 비교 참조
- 오버라이딩(Overriding) : 상속 관계에서 만 가능
- 오버로딩(Overloading) : 동일 클래스 내 또는 상속 관계 둘 다 가능