多态
定义:
多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。
多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。
《1》 静态多态性
在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。C#提供了两种技术来实现静态多态性。分别为:
1.函数重载
可以在同一个范围内对相同的函数名有多个定义。函数的定义必须彼此不同,可以是参数列表中的参数类型不同,也可以是参数个数不同。不能重载只有返回类型不同的函数声明。
总结:函数名相同,函数的参数列表(参数类型,个数,不同类型的排列顺序)不同
2.运算符重载
《2》动态多态性
动态多态性是通过抽象类和虚方法实现的。
(1)抽象
C#允许您使用关键字abstract创建抽象类,用于提供接口的部分类的实现。当一个派生类继承自该抽象类时,实现即完成。抽象类包含抽象方法,抽象方法可被派生类实现。派生类具有更专业的功能。
有关抽象类的一些规则:
1.不能创建一个抽象类的实例
2.不能在一个抽象类外部声明一个抽象方法。
3. 抽象函数只能在抽象类内声明,无法在正常类中使用。
4. 抽象类中可以声明正常函数
namespace 抽象
{
abstract class Person
{
public abstract void Run(); //abstract 抽象方法必须在抽象类中
public void Say() //抽象类中可以声明正常的函数
{
Console.WriteLine("我每天的工作都很忙");
}
}
}
抽象类的继承
namespace 抽象
{
class Student: Person //继承了抽象类,则必须要实现抽象函数,实现=重写抽象函数(override)
{
public override void Run()
{
Console.WriteLine("我的生活很精彩");
}
}
}
namespace 抽象
{
class Program
{
static void Main(string[] args)
{
Student st = new Student();
st.Say(); //方法的调用
st.Run();
Console.R