多态可以是静态的也可以是动态的。在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。
在编译期间将函数与对象的链接称为早期绑定。也称为静态绑定。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(); //调用print打印整数 p.print(5); //调用print来打印float- p.print(500.263); //调用print以打印字符串 p.print("Hello C++"); Console.ReadKey(); } } }
输出结果
Printing int: 5 Printing float: 500.263 Printing string: Hello C++