다형성은 정적이거나 동적일 수 있습니다. 정적 다형성에서 함수에 대한 응답은 컴파일 시간에 결정됩니다. 동적 다형성에서는 런타임에 결정됩니다.
정적 다형성에서 함수에 대한 응답은 컴파일 시간에 결정됩니다. 동적 다형성에서는 런타임에 결정됩니다. 동적 다형성은 우리가 후기 바인딩이라고 부르는 것입니다.
컴파일 시간 다형성 또는 정적 바인딩
컴파일 시간 동안 함수와 객체를 연결하는 메커니즘을 초기 바인딩이라고 합니다. 정적 바인딩이라고도 합니다.
런타임 다형성 또는 동적 바인딩
런타임 다형성에는 동적 바인딩 또는 후기 바인딩이라고도 하는 메서드 재정의가 있습니다.
메서드 오버로딩을 구현하는 컴파일 시간 다형성의 예를 살펴보겠습니다. -
예
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++