本人写了两个类:
namespace AspNet.MyClass
{
public class a
{
protected int eye;
protected int face;
public a()
{
eye = 2;
face = 1;
} protected void ShowStr()
{
System.Web.HttpContext.Current.Response.Write(face);
}
}
}namespace AspNet.MyClass
{
public class b : a
{
public b()
{
eye = 4;
}
override protected void ShowStr()
{
System.Web.HttpContext.Current.Response.Write(eye);
}
}
}这样编译时出错,提示:
D:\Asp.Net\MyClass\b.cs(17): “AspNet.MyClass.b.ShowStr()” : 无法重写继承成员“AspNet.MyClass.a.ShowStr()”,因为它未标记为 virtual、abstract 或 override为什么?
namespace AspNet.MyClass
{
public class a
{
protected int eye;
protected int face;
public a()
{
eye = 2;
face = 1;
} protected void ShowStr()
{
System.Web.HttpContext.Current.Response.Write(face);
}
}
}namespace AspNet.MyClass
{
public class b : a
{
public b()
{
eye = 4;
}
override protected void ShowStr()
{
System.Web.HttpContext.Current.Response.Write(eye);
}
}
}这样编译时出错,提示:
D:\Asp.Net\MyClass\b.cs(17): “AspNet.MyClass.b.ShowStr()” : 无法重写继承成员“AspNet.MyClass.a.ShowStr()”,因为它未标记为 virtual、abstract 或 override为什么?
{
System.Web.HttpContext.Current.Response.Write(face);
}
override protected void ShowStr()
改为
new protected void ShowStr()
greenery(greenery)正解,用NEW的话,就只是完完全全的覆盖基类的成员,而在子类中用一个同名的成员罢了,与基类没有任何关系.