new、virtual、override、abstract 等-覆盖(改写、重写)

作者:vkvi 来源:千一网络(原创) 日期:2009-12-12

覆盖最主要的特点是关键字 virtual、override。

public class BaseClass
{
    public virtual void Do()
    {
        HttpContext.Current.Response.Write("基类方法");
    }
}
 
public class DerivedClass : BaseClass
{
    public override void Do()
    {
        HttpContext.Current.Response.Write("派生类方法");
    }
}

调用:

DerivedClass dc = new DerivedClass();
dc.Do(); // 派生类方法
((BaseClass)dc).Do(); // 派生类方法

调用的都是派生类方法。

覆盖特点:

  • 必须位于基类和派生类中;
  • 方法名称必须相同;
  • 参数类型、参数个数必须相同;
  • 返回值类型必须相同(与隐藏不同);
  • 必须使用关键字 virtual 和 override;
  • 即使把派生类的实例转换成基类类型,也无法调用基类中被覆盖的方法,因为它已经被覆盖了嘛,不像隐藏还有被“发掘”的机会。

相关阅读

你前面那位网友看了:事务与锁的探讨-人工锁

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他