빌로 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)
    • 위 경우가 아니라면 오버로딩보다는 함수명을 다른 이름으로 하자!

 

  • 또한 오버로딩은 리턴 타입이 다르면 오버로딩 할 수 없다는 점이다. 한가지로 통일 되어야 한다.
  • 메소드의 이름을 절약할 수 있다! 함수명은 직관적으로 블랙박스처럼 안쪽이 무슨 행위를 하는지 몰라야 한다. 그런데 동일한 행위를 한다고 가정했을때, 필요한 데이터 타입이 다르다면 이때 필요한게 오버로딩이다.