重写、隐藏基类(new, override)的方法
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是一样的。
相关文章
C# 延迟Task.Delay()和Thread.Sleep()的具体使用
Thread.Sleep()是同步延迟,Task.Delay()是异步延迟,本文主要介绍了C# 延迟Task.Delay()和Thread.Sleep()的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧2024-01-01


最新评论