public class p
{
public string ToString(){
return "p";
}
} public class c:p{
public string ToString(){
return "c";
}
}
void Main()
{
var obj = new c();
Console.WriteLine ( (obj as p).ToString() );
}
如上例,如果想灵活控制输出类的方法,就不能使用 override ToString.
如改为 override ToString , 就不能输出父类对象的 ToString 了。
如果想输出真实的对象方法,而不是父类对象的方法,就需要 override。
如果父类是一个指定的虚方法,子类可以使用 new 修饰方法达到 灵活控制类方法的目的。
如果不使用 override ,经过装箱传递如:
object obj = c ;
obj.ToString();
将输出 类型名称。
所以使用还是不使用,应该酌情而定。