重写、隐藏基类(new, override)的方法
本文导语: 代码如下:public class Father { public void Write() { Console.WriteLine("父"); } } public class Mother { public virtual void Write() { Console.WriteLine("母"); ...
public class Father
{
public void Write() {
Console.WriteLine("父");
}
}
public class Mother
{
public virtual void Write()
{
Console.WriteLine("母");
}
}
public class Boy : Father
{
public new void Write()
{
Console.WriteLine("子");
}
}
public class Girl : Mother
{
public override void Write()
{
Console.WriteLine("女");
}
}
static void Main(string[] args)
{
Father father = new Boy();
father.Write();
Boy boy = new Boy();
boy.Write();
Mother mother = new Mother();
mother.Write();
Girl girl = new Girl();
girl.Write();
Console.ReadLine();
}
输出:
父
子
母
女
添加调用父方法:
public class Boy : Father
{
public new void Write()
{
base.Write();
Console.WriteLine("子");
}
}
public class Girl : Mother
{
public override void Write()
{
base.Write();
Console.WriteLine("女");
}
}
输出:
父
父
子
母
母
女
可见,在程序运行结果上new 和override是一样的。