一个是方法的修饰new,表示这是一个独立的方法(和基类方法没有继承关系) 一个是new运算符,用于初始化一个引用变量。new B();产生一个B的实例 new C();产生一个C的实例当然不一样。
public class A { public virtual void Show() { HttpContext.Current.Response.Write("A Show<br/>"); } public virtual void Shows() { HttpContext.Current.Response.Write("A Shows<br/>"); } } public class B:A { public void Shows() { HttpContext.Current.Response.Write("B Shows<br/>"); }
一个是方法的修饰new,表示这是一个独立的方法(和基类方法没有继承关系)
一个是new运算符,用于初始化一个引用变量。new B();产生一个B的实例
new C();产生一个C的实例当然不一样。
{
public virtual void Show()
{
HttpContext.Current.Response.Write("A Show<br/>");
} public virtual void Shows()
{
HttpContext.Current.Response.Write("A Shows<br/>");
}
}
public class B:A
{
public void Shows()
{
HttpContext.Current.Response.Write("B Shows<br/>");
}
}public class C : B
{
} 结论:
override可以确保所有继承了B类的派生类都使用B中定义的派生类版本.
若想使用类A中的方法,则需使B中和A中签名的方法前都加上new关键字.别人说的不是引用类的实例,说的都是签名的方法!!!
http://msdn.microsoft.com/ZH-CN/library/vstudio/6fawty39(v=vs.110).aspx
http://msdn.microsoft.com/ZH-CN/library/vstudio/ms173153(v=vs.110).aspx