C#多态性(函数重载)

多态是同一个行为具有多个不同表现形式或形态的能力

多态性意味着有多重形式,在面向对象编程范式中,多态性往往表现为“一个接口,多个功能”

多态性可以是静态的也可以是动态的,在静态多态性中,函数的响应是在编译的时候发生的,在动态多态性中,函数的响应是在运行时发生的。

在C#中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自Object

1、静态多态性

  在编译时,函数和对象的连接机制被称为早期绑定,也称为静态绑定,C#提供了两种技术来实现静态多态性,分别是:函数重载和运算符重载

函数重载和java类似

2、动态多态性

  C#可以使用关键字abstract创建抽象类,用于提供接口的部分类的实现,当一个派生类继承自该抽象类的时候,实现即完成。抽象类中包含抽象方法,抽象方法可以被派生类实现,派生类具有更专业的功能

  抽象类的一些规则:

    不能创建一个抽象类的实例

    不能在一个抽象类外部声明一个抽象方法

    **通过在类定义前面放置关键字sealed,可以将类声明为密封类,当一个类被声明为sealed时,该类不能被继承。抽象类不能被声明为sealed

  当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法

    虚方法是使用关键字virtual声明的

    虚方法可以在不同的继承类中有不同的实现

    对虚方法的调用是在运行时发生的

  动态多态性是通过抽象类和虚方法实现的

原文地址:https://www.cnblogs.com/xing-29391/p/14591739.html