这篇文章出发点是对我认为对在C#多态性方面的理解过程中易出现差错的地方做一个详细记录与梳理。
C#的多态性
含义
多态是同一个行为具有多个不同表现形式或形态的能力。多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。概要理解来说,多态就是同一个接口,使用不同的实例而执行不同操作。
静态多态性
在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。C# 提供了两种技术来实现静态多态性。分别为:函数重载与运算符重载。
函数重载
您可以在同一个范围内对相同的函数名有多个定义。函数的定义必须彼此不同,可以是参数列表中的参数类型不同,也可以是参数个数不同。不能重载只有返回类型不同的函数声明!举例如下图所示:
using System;
namespace _08___多态性
{
public class Test
{
public int sum(int a, int b)
{
return a + b;
}
public int sum(int a, int b,int c)
{
return a + b + c;
}
}
class Program
{
static void Main(string[] args)
{
Test t1 = new Test();
int result1 = t1.sum(1, 2);
int result2 = t1.sum(1, 2, 3);
Console.WriteLine("result1:{0}"