다형성은 정적이거나 동적일 수 있습니다. 정적 다형성에서 함수에 대한 응답은 컴파일 시간에 결정됩니다. 동적 다형성에서는 런타임에 결정됩니다.
컴파일 시간 동안 함수와 객체를 연결하는 것을 초기 바인딩이라고 합니다. 정적 바인딩이라고도 합니다. C#은 정적 다형성을 구현하는 두 가지 기술을 제공합니다. 함수 오버로딩과 연산자 오버로딩입니다.
함수 오버로딩에서는 동일한 범위에서 동일한 함수 이름에 대해 여러 정의를 가질 수 있습니다. 함수의 정의는 인수 목록의 인수 유형 및/또는 개수에 따라 서로 달라야 합니다.
다음은 C#에서 함수 오버로딩을 구현하는 방법을 보여주는 예입니다 -
예시
using System;
namespace PolymorphismApplication {
class Printdata {
void print(int i) {
Console.WriteLine("Printing int: {0}", i );
}
void print(double f) {
Console.WriteLine("Printing float: {0}" , f);
}
void print(string s) {
Console.WriteLine("Printing string: {0}", s);
}
static void Main(string[] args) {
Printdata p = new Printdata();
// Call print to print integer
p.print(5);
// Call print to print float
p.print(500.263);
// Call print to print string
p.print("Hello C++");
Console.ReadKey();
}
}
} 출력
Printing int: 5 Printing float: 500.263 Printing string: Hello C++