더북(TheBook)

44.3 메서드 오버로드와 오버라이드

처음 프로그래밍할 때 쉽게 혼동하는 단어가 바로 오버로드(overload)와 오버라이드(override)입니다. 오버로드는 여러 번 정의하는 것이고, 오버라이드는 다시 정의(재정의)하는 것입니다.

이미 많이 사용한 함수 중복을 의미하는 메서드 오버로드 예제를 하나 살펴볼까요?

> static void Print(int number) => Console.WriteLine(number);
> static void Print(ref int number) => Console.WriteLine(++number);
> var number = 100;
> Print(number);
100
> Print(ref number);
101
> Print(number);
101

앞 예제처럼 클래스 내에 이름이 동일한 메서드를 시그니처를 달리하여 여러 번 정의하는 것을 오버로드라고 합니다. 첫 번째 Print() 메서드는 값 형식의 매개변수를 받아 사용하고, 두 번째 Print() 메서드는 참조 형식의 매개변수를 받아 사용합니다. ref 키워드를 사용했느냐 사용하지 않았느냐에 따라 호출되는 메서드가 달라진다는 부분을 구분할 필요가 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.