반응형
메서드 오버로딩은 객체지향 프로그램에서 매개변수의 개수를 달리하거나 타입을 다르게 해서 같은 이름의 메서드를 여러개 정의해서 사용할 수 있게 하는 개념입니다.
아래의 Calculator 클래스에는 같은 이름의 Add 메서드가 3개 정의되어 있습니다.
메서드 오버로딩 |
매개 변수의 개수를 다르게 한다. |
매개 변수의 타입(type)을 다르게 한다. |
(주의) 메서드의 반환형을 다르게 해서 오버로딩을 구현할 수 없다. |
class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public int Add(int a, int b, int c)
{
return a + b + c;
}
public double Add(double a, double b)
{
return a + b;
}
}
위에서 정의한 Calculator 클래스를 사용하는 C# 코드입니다.
using System;
internal class Program
{
static void Main(string[] args)
{
Calculator calc = new Calculator();
int a = calc.Add(10, 20);
int b = calc.Add(10, 20, 30);
double c = calc.Add(11.1, 22.2);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
}
}
아래와 같이 메서드의 반환형을 달리해서 오버로딩을 구현할 수 없습니다.
public int Add(int a, int b)
{
return a + b;
}
public double Add(int a, int b) // 여기에 오류가 있습니다.
{
return (double)(a + b);
}
반응형
'C# > C#_기초강의' 카테고리의 다른 글
(C#) ref 참조에 의한 호출(call by reference) (0) | 2023.04.30 |
---|---|
(C#) params 가변 개수의 메서드 매개변수 사용하기 (0) | 2023.04.29 |
(C#) 1차원 배열의 요소를 앞으로 1칸씩 이동하기 (0) | 2023.04.24 |
(C#) 1차원 배열의 요소를 뒤로 1칸씩 이동하기 (0) | 2023.04.24 |
(C#) LINQ(Language-Integrated Query) 링크 기초 (0) | 2023.04.23 |