C#语法拾取(14)--多态性(ploymorphism)

在C#中,多态的定义是:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持两种

类型的多态性:

  1)编译时的多态性

    编译时的多态性是通过重载来实现的。方法重载和操作符重载,它们都实现了编译时的多态性。对于非虚的成员来说,系统

在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

  2)运行时的多态性
   
    运行时的多态性就是指直到系统运行时,才根据实现情况决定实现何种操作。C#中运行时的多态生通过虚成员实现。

编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。

 

虚方法:

  当类中的方法声明前加上了virtual修饰符,我们称之为虚方法,反之为非虚方法。

  对于非虚的方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变。而对于虚方法,它
的执行方式可以被派生类改变,这种改变是通过方法的重载来实现的。

在派生类中对虚方法进行重载:

  变通方法的重载:类中两个以上的方法(包括隐藏的继承而来的方法),取的名字相同,只要使用的参数类型或者参数个数不同,

编译器便知道在何种情况下应该调用哪人方法。
 
  基本类虚方法的重载是函数重载的另一种特殊形式。在派生类中重新定义此虚函数时,要求的是方法名称
返回值类型、参数表中的参数个数、类型、顺序都必须与基类中的虚函数完全一致。在派生类中声明对虚方法的重载,要求在声

明中加上override关键字,而且不能有new,static或virtual修饰符。

以例子来说明多态性:
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和海风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值