IT공부/프로그래밍
오버로딩
빌로
2021. 8. 4. 22:50
- 오버로딩이란? 쉽게 말해 함수명은 동일하고, 매개변수가 다른것을 의미한다. 아래와 같은 경우에 사용한다.
- 매개변수의 수가 다른경우
- 승격/묵시적 변환을 해도 상관없는 경우
- ex) static double Sqrt(double num)
- static int Sqrt(int num)
- 실제 c#의 Math 라이브러리도 float 보단 double을 더 많이 지원함.
- float 과 int는 묵시적 변환이 가능한 타입이므로 주의해야한다!
- 매개변수가 승격이 불가능한 경우
- ex) static double Sqrt(String num)
- static int Sqrt(int num)
- 위 경우가 아니라면 오버로딩보다는 함수명을 다른 이름으로 하자!
- 또한 오버로딩은 리턴 타입이 다르면 오버로딩 할 수 없다는 점이다. 한가지로 통일 되어야 한다.
- 메소드의 이름을 절약할 수 있다! 함수명은 직관적으로 블랙박스처럼 안쪽이 무슨 행위를 하는지 몰라야 한다. 그런데 동일한 행위를 한다고 가정했을때, 필요한 데이터 타입이 다르다면 이때 필요한게 오버로딩이다.