new、virtual、override、abstract 等-隐藏

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

隐藏最主要的特点是关键字 new。

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

new 不能位于返回值类型(这里是 void)之后。

调用:

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

dc 被转换成 BaseClass 后,其调用的就是基类的方法。

隐藏特点:

  • 必须位于基类和派生类中;
  • 方法名称必须相同;
  • 参数类型、参数个数必须相同;
  • 返回值类型可以不同;
  • 应该使用 new,虽然不使用 new 也会运行,但在编译时会被警告;
  • 调用派生类方法还是基类方法,取决于被什么类型的实例调用。

相关阅读

相关文章
文章评论